about summary refs log tree commit homepage
path: root/lib/PublicInbox/NetReader.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2021-03-04 17:03:11 +0800
committerEric Wong <e@80x24.org>2021-03-04 14:29:36 -0400
commit1d0616b4ee744185ef6c1ff8672ea4521497406a (patch)
tree26490b51c2080187a74998bafa68ada6d0b496c4 /lib/PublicInbox/NetReader.pm
parentfbc11e24a72f41b0ed7ead30d199288a4d674be4 (diff)
downloadpublic-inbox-1d0616b4ee744185ef6c1ff8672ea4521497406a.tar.gz
IMAP is similar to Maildir and we can now preserve keyword
updates done on IMAP folders.
Diffstat (limited to 'lib/PublicInbox/NetReader.pm')
-rw-r--r--lib/PublicInbox/NetReader.pm9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/PublicInbox/NetReader.pm b/lib/PublicInbox/NetReader.pm
index 96d3b2ed..f5f71005 100644
--- a/lib/PublicInbox/NetReader.pm
+++ b/lib/PublicInbox/NetReader.pm
@@ -346,9 +346,14 @@ sub _imap_do_msg ($$$$$) {
         $$raw =~ s/\r\n/\n/sg;
         my $kw = [];
         for my $f (split(/ /, $flags)) {
-                my $k = $IMAPflags2kw{$f} // next; # TODO: X-Label?
-                push @$kw, $k;
+                if (my $k = $IMAPflags2kw{$f}) {
+                        push @$kw, $k;
+                } elsif ($f eq "\\Recent") { # not in JMAP
+                } elsif ($self->{verbose}) {
+                        warn "# unknown IMAP flag $f <$uri;uid=$uid>\n";
+                }
         }
+        @$kw = sort @$kw; # for all UI/UX purposes
         my ($eml_cb, @args) = @{$self->{eml_each}};
         $eml_cb->($uri, $uid, $kw, PublicInbox::Eml->new($raw), @args);
 }