about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/PublicInbox/NetReader.pm5
-rw-r--r--t/lei-import-nntp.t4
2 files changed, 8 insertions, 1 deletions
diff --git a/lib/PublicInbox/NetReader.pm b/lib/PublicInbox/NetReader.pm
index fbe1ac4f..eab7320e 100644
--- a/lib/PublicInbox/NetReader.pm
+++ b/lib/PublicInbox/NetReader.pm
@@ -729,7 +729,10 @@ sub _nntp_fetch_all ($$$) {
         }
         (defined($num_a) && defined($num_b) && $num_a > $num_b) and
                 return "E: $uri: backwards range: $num_a > $num_b";
-
+        if (defined($num_a)) { # no article numbers in mail_sync.sqlite3
+                $uri = $uri->clone;
+                $uri->group($group);
+        }
         # IMAPTracker is also used for tracking NNTP, UID == article number
         # LIST.ACTIVE can get the equivalent of UIDVALIDITY, but that's
         # expensive.  So we assume newsgroups don't change:
diff --git a/t/lei-import-nntp.t b/t/lei-import-nntp.t
index 1eb41e0e..df0594d4 100644
--- a/t/lei-import-nntp.t
+++ b/t/lei-import-nntp.t
@@ -49,12 +49,16 @@ test_lei({ tmpdir => $tmpdir }, sub {
 
         my $end = $high - 1;
         lei_ok qw(import), "$url/$high";
+        lei_ok 'ls-mail-sync';
+        is($lei_out, "$url\n", 'article number not stored as folder');
         lei_ok qw(q z:0..); my $one = json_utf8->decode($lei_out);
         pop @$one; # trailing null
         is(scalar(@$one), 1, 'only 1 result');
 
         local $ENV{HOME} = "$tmpdir/h3";
         lei_ok qw(import), "$url/$low-$end";
+        lei_ok 'ls-mail-sync';
+        is($lei_out, "$url\n", 'article range not stored as folder');
         lei_ok qw(q z:0..); my $start = json_utf8->decode($lei_out);
         pop @$start; # trailing null
         is(scalar(@$start), scalar(map { $_ } ($low..$end)),