]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/NNTP.pm
nntp: small speed up for multi-line responses
[public-inbox.git] / lib / PublicInbox / NNTP.pm
index e0916011902e6279c8f07db86bdf4b22cf6c0526..05d2d13bbbea83880b036565b2a356802ff2322e 100644 (file)
@@ -204,7 +204,7 @@ sub listgroup_range_i {
        my ($self, $beg, $end) = @_;
        my $r = $self->{ng}->mm->msg_range($beg, $end, 'num');
        scalar(@$r) or return;
-       more($self, join("\r\n", map { $_->[0] } @$r));
+       $self->msg_more(join('', map { "$_->[0]\r\n" } @$r));
        1;
 }
 
@@ -327,10 +327,9 @@ sub newnews_i {
                if (my $over = $ibx->over) {
                        my $msgs = $over->query_ts($ts, $$prev);
                        if (scalar @$msgs) {
-                               more($self, '<' .
-                                       join(">\r\n<",
-                                               map { $_->{mid} } @$msgs ) .
-                                       '>');
+                               $self->msg_more(join('', map {
+                                                       "<$_->{mid}>\r\n";
+                                               } @$msgs));
                                $$prev = $msgs->[-1]->{num};
                                return 1; # continue on current group
                        }
@@ -422,14 +421,13 @@ sub header_append ($$$) {
 sub xref_by_tc ($$$) {
        my ($xref, $pi_cfg, $smsg) = @_;
        my $by_addr = $pi_cfg->{-by_addr};
-       my $groups = $pi_cfg->{-by_newsgroup};
        my $mid = $smsg->{mid};
        for my $f (qw(to cc)) {
                my @ibxs = map {
                        $by_addr->{lc($_)} // ()
                } (PublicInbox::Address::emails($smsg->{$f} // ''));
                for my $ibx (@ibxs) {
-                       $groups->{my $ngname = $ibx->{newsgroup}} or next;
+                       my $ngname = $ibx->{newsgroup} // next;
                        next if defined $xref->{$ngname};
                        $xref->{$ngname} = eval { $ibx->mm->num_for($mid) };
                }
@@ -708,7 +706,7 @@ sub hdr_msgid_range_i {
        my ($self, $beg, $end) = @_;
        my $r = $self->{ng}->mm->msg_range($beg, $end);
        @$r or return;
-       more($self, join("\r\n", map { "$_->[0] <$_->[1]>" } @$r));
+       $self->msg_more(join('', map { "$_->[0] <$_->[1]>\r\n" } @$r));
        1;
 }
 
@@ -775,8 +773,8 @@ sub xref_range_i {
        my $msgs = $ng->over->query_xover($$beg, $end);
        scalar(@$msgs) or return;
        $$beg = $msgs->[-1]->{num} + 1;
-       more($self, join("\r\n", map {
-               "$_->{num} ".xref($self, $ng, $_);
+       $self->msg_more(join('', map {
+               "$_->{num} ".xref($self, $ng, $_) . "\r\n";
        } @$msgs));
        1;
 }
@@ -935,7 +933,7 @@ sub over_line ($$$) {
                $smsg->{lines},
                "Xref: " . xref($self, $ng, $smsg));
        utf8::encode($s);
-       $s
+       $s .= "\r\n";
 }
 
 sub cmd_over ($;$) {
@@ -954,7 +952,7 @@ sub cmd_over ($;$) {
                        $smsg->{-orig_num} = $smsg->{num};
                        $smsg->{num} = 0;
                }
-               more($self, over_line($self, $ng, $smsg));
+               $self->msg_more(over_line($self, $ng, $smsg));
                '.';
        } else {
                cmd_xover($self, $range);
@@ -968,7 +966,7 @@ sub xover_i {
        my $nr = scalar @$msgs or return;
 
        # OVERVIEW.FMT
-       more($self, join("\r\n", map {
+       $self->msg_more(join('', map {
                over_line($self, $ng, $_);
                } @$msgs));
        $$beg = $msgs->[-1]->{num} + 1;