X-Git-Url: http://www.git.stargrave.org/?p=public-inbox.git;a=blobdiff_plain;f=lib%2FPublicInbox%2FSmsg.pm;h=7a2766d8ff8401e3b94b32e109b250f44ddc5da2;hp=7c90b92dabbcd7d764703e46b7bc31641aa1f526;hb=93e3d34ff8d5f981fe4bdd4a6cddb96af6785008;hpb=a6814118856da197b909d68721d461a3936a085b diff --git a/lib/PublicInbox/Smsg.pm b/lib/PublicInbox/Smsg.pm index 7c90b92d..7a2766d8 100644 --- a/lib/PublicInbox/Smsg.pm +++ b/lib/PublicInbox/Smsg.pm @@ -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);