diff options
author | Eric Wong <e@80x24.org> | 2021-05-30 06:33:56 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2021-05-30 08:09:08 +0000 |
commit | 9b4d6cb8d09777ac3157afe0b08969a959e4968a (patch) | |
tree | 2c7cffd8b90d85150e447e6ff2e66ad019295439 | |
parent | 6ac85b2245b306590527196fb2cee124a29979b5 (diff) | |
download | public-inbox-9b4d6cb8d09777ac3157afe0b08969a959e4968a.tar.gz |
Requiring UIDVALIDITY on the command-line is of course unreasonable.
-rw-r--r-- | lib/PublicInbox/LeiLcat.pm | 12 | ||||
-rw-r--r-- | t/lei-import-imap.t | 3 |
2 files changed, 14 insertions, 1 deletions
diff --git a/lib/PublicInbox/LeiLcat.pm b/lib/PublicInbox/LeiLcat.pm index 81ab1e36..5bd20c1f 100644 --- a/lib/PublicInbox/LeiLcat.pm +++ b/lib/PublicInbox/LeiLcat.pm @@ -24,7 +24,17 @@ sub lcat_imap_uri ($$) { } elsif (defined(my $fid = $lms->fid_for($$uri))) { push @{$lei->{lcat_fid}}, $fid; } else { - $lei->child_error(1 << 8, "# unknown folder: $uri"); + my $folders = [ $$uri ]; + my $err = $lms->arg2folder($lei, $folders); + $lei->qerr(@{$err->{qerr}}) if $err && $err->{qerr}; + if ($err && $err->{fail}) { + $lei->child_error(1 << 8, "# unknown folder: $uri"); + } else { + for my $f (@$folders) { + my $fid = $lms->fid_for($f); + push @{$lei->{lcat_fid}}, $fid; + } + } } } diff --git a/t/lei-import-imap.t b/t/lei-import-imap.t index 895b19ff..34fd6cf9 100644 --- a/t/lei-import-imap.t +++ b/t/lei-import-imap.t @@ -13,6 +13,7 @@ my $host_port = tcp_host_port($sock); undef $sock; test_lei({ tmpdir => $tmpdir }, sub { my $url = "imap://$host_port/t.v2.0"; + my $url_orig = $url; lei_ok(qw(q z:1..)); my $out = json_utf8->decode($lei_out); @@ -100,6 +101,8 @@ test_lei({ tmpdir => $tmpdir }, sub { lei_ok qw(lcat -f json), $uid_url; $out = json_utf8->decode($lei_out); is(scalar(@$out), 2, 'got JSON') or diag explain($out); + lei_ok qw(lcat), $url_orig; + is($lei_out, $orig, 'lcat w/o UID works'); }); done_testing; |