From 0c586dc64b3b6642a894e125d09df446667a4079 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 18 Apr 2020 03:38:53 +0000 Subject: reduce scope of mbox From_ line removal It's unnecessary overhead for anything which does Email::MIME parsing. It was never done for v2 indexing, even though v1->v2 conversions did NOT remove those From_ lines. There was never a need to remote From_ lines the v1 SearchIdx paths, either. Hitting a /$INBOX_URL/$MSGID/T/ endpoint with an 18 message thread reveals a ~0.5% speed improvement. This will become more apparent when we have a faster MIME parser. --- lib/PublicInbox/Inbox.pm | 8 ++------ lib/PublicInbox/Mbox.pm | 7 +++++-- lib/PublicInbox/NNTP.pm | 2 ++ lib/PublicInbox/SearchIdx.pm | 2 -- 4 files changed, 9 insertions(+), 10 deletions(-) (limited to 'lib') diff --git a/lib/PublicInbox/Inbox.pm b/lib/PublicInbox/Inbox.pm index 4bd82989..186eb420 100644 --- a/lib/PublicInbox/Inbox.pm +++ b/lib/PublicInbox/Inbox.pm @@ -311,9 +311,7 @@ sub nntp_usable { # for v1 users w/o SQLite only sub msg_by_path ($$;$) { my ($self, $path, $ref) = @_; - my $str = git($self)->cat_file('HEAD:'.$path, $ref); - $$str =~ s/\A[\r\n]*From [^\r\n]*\r?\n//s if $str; - $str; + git($self)->cat_file('HEAD:'.$path, $ref); } sub msg_by_smsg ($$;$) { @@ -324,9 +322,7 @@ sub msg_by_smsg ($$;$) { return unless defined $smsg; defined(my $blob = $smsg->{blob}) or return; - my $str = git($self)->cat_file($blob, $ref); - $$str =~ s/\A[\r\n]*From [^\r\n]*\r?\n//s if $str; - $str; + git($self)->cat_file($blob, $ref); } sub smsg_mime { diff --git a/lib/PublicInbox/Mbox.pm b/lib/PublicInbox/Mbox.pm index 16de1a72..9995140c 100644 --- a/lib/PublicInbox/Mbox.pm +++ b/lib/PublicInbox/Mbox.pm @@ -106,8 +106,11 @@ sub msg_hdr ($$;$) { 'List-Post', "{-primary_address}>", ); my $crlf = $header_obj->crlf; - my $buf = 'From mboxrd@z Thu Jan 1 00:00:00 1970' . $crlf . - $header_obj->as_string; + my $buf = $header_obj->as_string; + # fixup old bug from import (pre-a0c07cba0e5d8b6a) + $buf =~ s/\A[\r\n]*From [^\r\n]*\r?\n//s; + $buf = "From mboxrd\@z Thu Jan 1 00:00:00 1970" . $crlf . $buf; + for (my $i = 0; $i < @append; $i += 2) { my $k = $append[$i]; my $v = $append[$i + 1]; diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm index d1f75f6f..c79f198b 100644 --- a/lib/PublicInbox/NNTP.pm +++ b/lib/PublicInbox/NNTP.pm @@ -506,6 +506,8 @@ sub set_art { sub msg_hdr_write ($$$) { my ($self, $hdr, $body_follows) = @_; $hdr = $hdr->as_string; + # fixup old bug from import (pre-a0c07cba0e5d8b6a) + $hdr =~ s/\A[\r\n]*From [^\r\n]*\r?\n//s; utf8::encode($hdr); $hdr =~ s/(?cat_file($blob, $sizeref) or die "BUG: $blob not found in $git->{git_dir}"; - # fixup bugs from import: - $$str =~ s/\A[\r\n]*From [^\r\n]*\r?\n//s; PublicInbox::MIME->new($str); } -- cgit v1.2.3-24-ge0c7