]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/Mbox.pm
mbox: handle empty subjects after dropping "Re:" prefix
[public-inbox.git] / lib / PublicInbox / Mbox.pm
index 3fdda5eaa8100f0435ce8b8f1a4f4612f9fe8204..cf93e7dbb64b21cfe57d417bf75902829013512b 100644 (file)
@@ -12,6 +12,7 @@ use strict;
 use warnings;
 use PublicInbox::MID qw/mid_escape/;
 use PublicInbox::Hval qw/to_filename/;
+use PublicInbox::SearchMsg;
 use Email::Simple;
 use Email::MIME::Encode;
 
@@ -23,11 +24,10 @@ sub subject_fn ($) {
        # no need for full Email::MIME, here
        if ($fn =~ /=\?/) {
                eval { $fn = Encode::decode('MIME-Header', $fn) };
-               $fn = 'no-subject' if $@;
+               return 'no-subject' if $@;
        }
        $fn =~ s/^re:\s+//i;
-       $fn = to_filename($fn);
-       $fn eq '' ? 'no-subject' : $fn;
+       $fn eq '' ? 'no-subject' : to_filename($fn);
 }
 
 sub mb_stream {
@@ -204,10 +204,8 @@ sub results_cb {
        my $srch = $ctx->{srch};
        while (1) {
                while (my $mi = (($mset->items)[$ctx->{iter}++])) {
-                       my $doc = $mi->get_document;
-                       my $smsg = $srch->retry_reopen(sub {
-                               PublicInbox::SearchMsg->load_doc($doc);
-                       }) or next;
+                       my $smsg = PublicInbox::SearchMsg::from_mitem($mi,
+                                                               $srch) or next;
                        return $smsg;
                }
                # refill result set