]> Sergey Matveev's repositories - public-inbox.git/commitdiff
nntp: fixup "Wide character" warnings
authorEric Wong <e@80x24.org>
Fri, 13 May 2016 12:12:41 +0000 (12:12 +0000)
committerEric Wong <e@80x24.org>
Fri, 13 May 2016 12:12:41 +0000 (12:12 +0000)
We need Perl to believe everything we send is UTF-8,
make it so, even if it may not be.

Fixes: 265e79ff82ce 'Revert "nntp: proper UTF-8 support (hopefully?)"'
lib/PublicInbox/NNTP.pm

index d177bdc4b2a98cfe9b897869d57deee56debc1cb..a6321489e7142325ba7578eba08e64e365144688 100644 (file)
@@ -16,6 +16,8 @@ use Data::Dumper qw(Dumper);
 use POSIX qw(strftime);
 use Time::HiRes qw(clock_gettime CLOCK_MONOTONIC);
 use URI::Escape qw(uri_escape_utf8);
+use Encode qw(find_encoding);
+my $enc_utf8 = find_encoding('UTF-8');
 use constant {
        r501 => '501 command syntax error',
        r221 => '221 Header follows',
@@ -900,6 +902,7 @@ sub cmd_xpath ($$) {
 
 sub res ($$) {
        my ($self, $line) = @_;
+       $line = $enc_utf8->encode($line);
        do_write($self, $line . "\r\n");
 }
 
@@ -934,6 +937,7 @@ use constant MSG_MORE => ($^O eq 'linux') ? 0x8000 : 0;
 
 sub do_more ($$) {
        my ($self, $data) = @_;
+       $data = $enc_utf8->encode($data);
        if (MSG_MORE && !$self->{write_buf_size}) {
                my $n = send($self->{sock}, $data, MSG_MORE);
                if (defined $n) {