]> Sergey Matveev's repositories - public-inbox.git/commitdiff
nntp: cmd_listgroup: use named subs for long_response
authorEric Wong <e@80x24.org>
Sat, 21 Dec 2019 08:00:04 +0000 (08:00 +0000)
committerEric Wong <e@80x24.org>
Sun, 22 Dec 2019 03:56:14 +0000 (03:56 +0000)
Introduce listgroup_range_i and listgroup_all_i subs which
do the same things as the anonymous subs they replace.

lib/PublicInbox/NNTP.pm

index 95ac7d5fd7ccaddf2dbf505241e006fdf1251ec9..67f82339566daec6458a0ea8e0dae4720649b53c 100644 (file)
@@ -180,6 +180,22 @@ sub cmd_list ($;$$) {
        '.'
 }
 
+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));
+       1;
+}
+
+sub listgroup_all_i {
+       my ($self, $num) = @_;
+       my $ary = $self->{ng}->mm->ids_after($num);
+       scalar(@$ary) or return;
+       more($self, join("\r\n", @$ary));
+       1;
+}
+
 sub cmd_listgroup ($;$$) {
        my ($self, $group, $range) = @_;
        if (defined $group) {
@@ -187,26 +203,13 @@ sub cmd_listgroup ($;$$) {
                return $res if ($res !~ /\A211 /);
                more($self, $res);
        }
-       my $ng = $self->{ng} or return '412 no newsgroup selected';
-       my $mm = $ng->mm;
+       $self->{ng} or return '412 no newsgroup selected';
        if (defined $range) {
                my $r = get_range($self, $range);
                return $r unless ref $r;
-               my ($beg, $end) = @$r;
-               long_response($self, sub {
-                       $r = $mm->msg_range($beg, $end, 'num');
-                       scalar(@$r) or return;
-                       more($self, join("\r\n", map { $_->[0] } @$r));
-                       1;
-               });
+               long_response($self, \&listgroup_range_i, @$r);
        } else { # grab every article number
-               my $n = 0;
-               long_response($self, sub {
-                       my $ary = $mm->ids_after(\$n);
-                       scalar(@$ary) or return;
-                       more($self, join("\r\n", @$ary));
-                       1;
-               });
+               long_response($self, \&listgroup_all_i, \(my $num = 0));
        }
 }