-# Copyright (C) 2015-2019 all contributors <meta@public-inbox.org>
+# Copyright (C) 2015-2020 all contributors <meta@public-inbox.org>
# License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
# Streaming (via getline) interface for formatting messages as an mboxrd.
use warnings;
use PublicInbox::MID qw/mid_escape/;
use PublicInbox::Hval qw/to_filename/;
+use PublicInbox::Smsg;
use Email::Simple;
use Email::MIME::Encode;
# 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 {
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::Smsg::from_mitem($mi,
+ $srch) or next;
return $smsg;
}
# refill result set