about summary refs log tree commit homepage
path: root/lib/PublicInbox/LeiLcat.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2021-09-21 07:41:52 +0000
committerEric Wong <e@80x24.org>2021-09-21 19:18:35 +0000
commita1cd0fccd40f1c2f0073c1e75ed3e8a26271dcd0 (patch)
tree8ce0b5c6d85c942eb69c94e956623d0c732aa4a2 /lib/PublicInbox/LeiLcat.pm
parent387f0e693f9e22a7698927bb40dab0742738e8a6 (diff)
downloadpublic-inbox-a1cd0fccd40f1c2f0073c1e75ed3e8a26271dcd0.tar.gz
If lcat-ing multiple argument types (blobs vs folders),
maintain the original order of the arguments instead of
dumping all blobs before folder contents.
Diffstat (limited to 'lib/PublicInbox/LeiLcat.pm')
-rw-r--r--lib/PublicInbox/LeiLcat.pm13
1 files changed, 6 insertions, 7 deletions
diff --git a/lib/PublicInbox/LeiLcat.pm b/lib/PublicInbox/LeiLcat.pm
index ccb1823d..1a4a988e 100644
--- a/lib/PublicInbox/LeiLcat.pm
+++ b/lib/PublicInbox/LeiLcat.pm
@@ -21,7 +21,7 @@ sub lcat_folder ($$$) {
         } else {
                 for my $f (@$folders) {
                         my $fid = $lms->fid_for($f);
-                        push @{$lei->{lcat_fid}}, $fid;
+                        push @{$lei->{lcat_todo}}, { fid => $fid };
                 }
         }
 }
@@ -31,10 +31,9 @@ sub lcat_imap_uri ($$) {
         my $lms = $lei->lms or return;
         # cf. LeiXsearch->lcat_dump
         if (defined $uri->uid) {
-                my @oidhex = $lms->imap_oidhex($lei, $uri);
-                push @{$lei->{lcat_blob}}, @oidhex;
+                push @{$lei->{lcat_todo}}, $lms->imap_oidhex($lei, $uri);
         } elsif (defined(my $fid = $lms->fid_for($$uri))) {
-                push @{$lei->{lcat_fid}}, $fid;
+                push @{$lei->{lcat_todo}}, { fid => $fid };
         } else {
                 lcat_folder($lei, $lms, $$uri);
         }
@@ -46,10 +45,10 @@ sub extract_1 ($$) {
                 my $u = $1;
                 require PublicInbox::URIimap;
                 lcat_imap_uri($lei, PublicInbox::URIimap->new($u));
-                '""'; # blank query, using {lcat_blob} or {lcat_fid}
+                '""'; # blank query, using {lcat_todo}
         } elsif ($x =~ m!\b(maildir:.+)!i) {
                 lcat_folder($lei, undef, $1);
-                '""'; # blank query, using {lcat_blob} or {lcat_fid}
+                '""'; # blank query, using {lcat_todo}
         } elsif ($x =~ m!\b([a-z]+?://\S+)!i) {
                 my $u = $1;
                 $u =~ s/[\>\]\)\,\.\;]+\z//;
@@ -82,7 +81,7 @@ sub extract_1 ($$) {
         } elsif ($x =~ /\bid:(\S+)/) { # notmuch convention
                 "mid:$1";
         } elsif ($x =~ /\bblob:([0-9a-f]{7,})\b/) {
-                push @{$lei->{lcat_blob}}, $1; # cf. LeiToMail->wq_atexit_child
+                push @{$lei->{lcat_todo}}, $1; # cf. LeiToMail->wq_atexit_child
                 '""'; # blank query
         } else {
                 undef;