diff options
author | Eric Wong <e@yhbt.net> | 2020-05-07 21:05:49 +0000 |
---|---|---|
committer | Eric Wong <e@yhbt.net> | 2020-05-09 08:59:10 +0000 |
commit | 3b1b7abf814dbc7f2a737b2ca0e12b0fa518ff44 (patch) | |
tree | cde4545eac215cffda996d8aea47791f6d2e3095 /lib/PublicInbox/Mbox.pm | |
parent | 57af9c8d0bedafac3267b5b42f963bb8aa5c2ea1 (diff) | |
download | public-inbox-3b1b7abf814dbc7f2a737b2ca0e12b0fa518ff44.tar.gz |
Since PublicInbox::Eml doesn't parse MIME subparts up front, it can replace most uses of Email::Simple without performance penalty. This will eventually allow us to lower overall internal API footprint by not having to keep the MIME vs Simple distinction.
Diffstat (limited to 'lib/PublicInbox/Mbox.pm')
-rw-r--r-- | lib/PublicInbox/Mbox.pm | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/lib/PublicInbox/Mbox.pm b/lib/PublicInbox/Mbox.pm index 97bec5e7..94e61d4d 100644 --- a/lib/PublicInbox/Mbox.pm +++ b/lib/PublicInbox/Mbox.pm @@ -14,19 +14,13 @@ use PublicInbox::MID qw/mid_escape/; use PublicInbox::Hval qw/to_filename/; use PublicInbox::Smsg; use PublicInbox::WwwStream qw(html_oneshot); -use Email::Simple; -use Email::MIME::Encode; +use PublicInbox::Eml; sub subject_fn ($) { my ($hdr) = @_; - my $fn = $hdr->header('Subject'); + my $fn = $hdr->header_str('Subject'); return 'no-subject' if (!defined($fn) || $fn eq ''); - # no need for full Email::MIME, here - if ($fn =~ /=\?/) { - eval { $fn = Encode::decode('MIME-Header', $fn) }; - return 'no-subject' if $@; - } $fn =~ s/^re:\s+//i; $fn eq '' ? 'no-subject' : to_filename($fn); } @@ -51,7 +45,7 @@ sub getline { my $ibx = $ctx->{-inbox}; $next = $ibx->over->next_by_mid($ctx->{mid}, \$id, \$prev); $mref = $ibx->msg_by_smsg($cur) or return; - $hdr = Email::Simple->new($mref)->header_obj; + $hdr = PublicInbox::Eml->new($mref)->header_obj; @$more = ($ctx, $id, $prev, $next); # $next may be undef, here msg_hdr($ctx, $hdr) . msg_body($$mref); } @@ -72,7 +66,7 @@ sub emit_raw { } else { $mref = $ibx->msg_by_mid($mid) or return; } - my $hdr = Email::Simple->new($mref)->header_obj; + my $hdr = PublicInbox::Eml->new($mref)->header_obj; $more = [ $ctx, $id, $prev, $next, $mref, $hdr ]; # for ->getline my $fn = subject_fn($hdr); my @hdr = ('Content-Type'); @@ -114,7 +108,7 @@ sub msg_hdr ($$;$) { for (my $i = 0; $i < @append; $i += 2) { my $k = $append[$i]; my $v = $append[$i + 1]; - my @v = $header_obj->header($k); + my @v = $header_obj->header_raw($k); foreach (@v) { if ($v eq $_) { $v = undef; |