diff options
author | Eric Wong <e@80x24.org> | 2019-12-21 08:00:07 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2019-12-22 03:56:18 +0000 |
commit | c608ab025c4351c820c97e0ed907647274c662a2 (patch) | |
tree | 7c3b9b51fe194bd146207c575f53bbeb9f8cafdf /lib/PublicInbox/NNTP.pm | |
parent | 61550976b8ff52ba3e621caa5b9c450bf34801ff (diff) | |
download | public-inbox-c608ab025c4351c820c97e0ed907647274c662a2.tar.gz |
Introduce xover_i, which does the same thing as the anonymous sub it replaces.
Diffstat (limited to 'lib/PublicInbox/NNTP.pm')
-rw-r--r-- | lib/PublicInbox/NNTP.pm | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm index fca632e2..6845e872 100644 --- a/lib/PublicInbox/NNTP.pm +++ b/lib/PublicInbox/NNTP.pm @@ -863,6 +863,19 @@ sub cmd_over ($;$) { } } +sub xover_i { + my ($self, $beg, $end) = @_; + my $ng = $self->{ng}; + my $msgs = $ng->over->query_xover($$beg, $end); + my $nr = scalar @$msgs or return; + + # OVERVIEW.FMT + more($self, join("\r\n", map { + over_line($self, $ng, $_->{num}, $_); + } @$msgs)); + $$beg = $msgs->[-1]->{num} + 1; +} + sub cmd_xover ($;$) { my ($self, $range) = @_; $range = $self->{article} unless defined $range; @@ -870,18 +883,7 @@ sub cmd_xover ($;$) { return $r unless ref $r; my ($beg, $end) = @$r; more($self, "224 Overview information follows for $$beg to $end"); - my $over = $self->{ng}->over; - my $cur = $$beg; - long_response($self, sub { - my $msgs = $over->query_xover($cur, $end); - my $nr = scalar @$msgs or return; - - # OVERVIEW.FMT - more($self, join("\r\n", map { - over_line($self, $self->{ng}, $_->{num}, $_); - } @$msgs)); - $cur = $msgs->[-1]->{num} + 1; - }); + long_response($self, \&xover_i, @$r); } sub compressed { undef } |