X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FSmsg.pm;h=7a2766d8ff8401e3b94b32e109b250f44ddc5da2;hb=93e3d34ff8d5f981fe4bdd4a6cddb96af6785008;hp=5eb0723f4257995832b7ba21c6fe8218f9f48a4e;hpb=33ce2aa920d9ebffb0affcb216ebf03320c7492d;p=public-inbox.git diff --git a/lib/PublicInbox/Smsg.pm b/lib/PublicInbox/Smsg.pm index 5eb0723f..7a2766d8 100644 --- a/lib/PublicInbox/Smsg.pm +++ b/lib/PublicInbox/Smsg.pm @@ -12,7 +12,7 @@ use strict; use warnings; use base qw(Exporter); our @EXPORT_OK = qw(subject_normalized); -use PublicInbox::MID qw/mid_clean mid_mime/; +use PublicInbox::MID qw/mid_mime/; use PublicInbox::Address; use PublicInbox::MsgTime qw(msg_timestamp msg_datestamp); use Time::Local qw(timegm); @@ -106,20 +106,18 @@ sub lines ($) { $_[0]->{lines} } sub __hdr ($$) { my ($self, $field) = @_; - my $val = $self->{$field}; - return $val if defined $val; - - my $mime = $self->{mime} or return; - my @raw = $mime->header($field); - $val = join(', ', @raw); - $val =~ tr/\t\n/ /; - $val =~ tr/\r//d; - $self->{$field} = $val; + $self->{lc($field)} //= do { + my $mime = $self->{mime} or return; + my $val = join(', ', $mime->header($field)); + $val =~ tr/\r//d; + $val =~ tr/\t\n/ /; + $val; + }; } -sub subject ($) { __hdr($_[0], 'subject') } -sub to ($) { __hdr($_[0], 'to') } -sub cc ($) { __hdr($_[0], 'cc') } +sub subject ($) { __hdr($_[0], 'Subject') } +sub to ($) { __hdr($_[0], 'To') } +sub cc ($) { __hdr($_[0], 'Cc') } # no strftime, that is locale-dependent and not for RFC822 my @DoW = qw(Sun Mon Tue Wed Thu Fri Sat); @@ -137,7 +135,7 @@ sub date ($) { sub from ($) { my ($self) = @_; - my $from = __hdr($self, 'from'); + my $from = __hdr($self, 'From'); if (defined $from && !defined $self->{from_name}) { my @n = PublicInbox::Address::names($from); $self->{from_name} = join(', ', @n); @@ -178,12 +176,10 @@ sub mid ($;$) { $rv; } else { die "NO {mime} for mid\n" unless $self->{mime}; - $self->_extract_mid; # v1 w/o Xapian + mid_mime($self->{mime}) # v1 w/o Xapian } } -sub _extract_mid { mid_clean(mid_mime($_[0]->{mime})) } - our $REPLY_RE = qr/^re:\s+/i; sub subject_normalized ($) {