diff options
Diffstat (limited to 'lib/PublicInbox/MdirReader.pm')
-rw-r--r-- | lib/PublicInbox/MdirReader.pm | 22 |
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; |