From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 6ECB21F47A for ; Sat, 21 Dec 2019 08:00:08 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 3/8] nntp: hdr_searchmsg: use named sub for numeric range response Date: Sat, 21 Dec 2019 08:00:02 +0000 Message-Id: <20191221080007.27810-4-e@80x24.org> In-Reply-To: <20191221080007.27810-1-e@80x24.org> References: <20191221080007.27810-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: Introduce searchmsg_range_i, which does the same thing as the anonymous sub it replaces. --- lib/PublicInbox/NNTP.pm | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm index 33c557f5..30862dca 100644 --- a/lib/PublicInbox/NNTP.pm +++ b/lib/PublicInbox/NNTP.pm @@ -727,6 +727,20 @@ sub over_header_for { $smsg->{$field}; } +sub searchmsg_range_i { + my ($self, $beg, $end, $field) = @_; + my $over = $self->{ng}->over; + my $msgs = $over->query_xover($$beg, $end); + scalar(@$msgs) or return; + my $tmp = ''; + foreach my $s (@$msgs) { + $tmp .= $s->{num} . ' ' . $s->$field . "\r\n"; + } + utf8::encode($tmp); + $self->msg_more($tmp); + $$beg = $msgs->[-1]->{num} + 1; +} + sub hdr_searchmsg ($$$$) { my ($self, $xhdr, $field, $range) = @_; if (defined $range && $range =~ /\A<(.+)>\z/) { # Message-ID @@ -736,24 +750,10 @@ sub hdr_searchmsg ($$$$) { hdr_mid_response($self, $xhdr, $ng, $n, $range, $v); } else { # numeric range $range = $self->{article} unless defined $range; - my $over = $self->{ng}->over; - my $mm = $self->{ng}->mm; my $r = get_range($self, $range); return $r unless ref $r; - my ($beg, $end) = @$r; more($self, $xhdr ? r221 : r225); - my $cur = $$beg; - long_response($self, sub { - my $msgs = $over->query_xover($cur, $end); - my $nr = scalar @$msgs or return; - my $tmp = ''; - foreach my $s (@$msgs) { - $tmp .= $s->{num} . ' ' . $s->$field . "\r\n"; - } - utf8::encode($tmp); - $self->msg_more($tmp); - $cur = $msgs->[-1]->{num} + 1; - }); + long_response($self, \&searchmsg_range_i, @$r, $field); } }