about summary refs log tree commit homepage
path: root/lib/PublicInbox/MdirReader.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PublicInbox/MdirReader.pm')
-rw-r--r--lib/PublicInbox/MdirReader.pm22
1 files changed, 13 insertions, 9 deletions
diff --git a/lib/PublicInbox/MdirReader.pm b/lib/PublicInbox/MdirReader.pm
index 304be63d..484bf0a8 100644
--- a/lib/PublicInbox/MdirReader.pm
+++ b/lib/PublicInbox/MdirReader.pm
@@ -87,17 +87,21 @@ sub maildir_each_eml {
 sub new { bless {}, __PACKAGE__ }
 
 sub flags2kw ($) {
-        my @unknown;
-        my %kw;
-        for (split(//, $_[0])) {
-                my $k = $c2kw{$_};
-                if (defined($k)) {
-                        $kw{$k} = 1;
-                } else {
-                        push @unknown, $_;
+        if (wantarray) {
+                my @unknown;
+                my %kw;
+                for (split(//, $_[0])) {
+                        my $k = $c2kw{$_};
+                        if (defined($k)) {
+                                $kw{$k} = 1;
+                        } else {
+                                push @unknown, $_;
+                        }
                 }
+                (\%kw, \@unknown);
+        } else {
+                [ sort(map { $c2kw{$_} // () } split(//, $_[0])) ];
         }
-        (\%kw, \@unknown);
 }
 
 1;