From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-1.9 required=3.0 tests=AWL,BAYES_00 shortcircuit=no autolearn=ham version=3.3.2 X-Original-To: meta@public-inbox.org Received: from 80x24.org (atlantic480.us.unmetered.com [188.138.9.49]) by dcvr.yhbt.net (Postfix) with ESMTP id 666C7200F4 for ; Fri, 4 Sep 2015 02:18:29 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 6/7] SearchMsg: avoid encoding Message-IDs Date: Fri, 4 Sep 2015 02:18:10 +0000 Message-Id: <1441333091-32421-7-git-send-email-e@80x24.org> In-Reply-To: <1441333091-32421-1-git-send-email-e@80x24.org> References: <1441333091-32421-1-git-send-email-e@80x24.org> List-Id: Spaces may be added when using header_str with Email::MIME->create, so use the normal "header" parameter when setting Message-IDs and References. --- lib/PublicInbox/SearchMsg.pm | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/lib/PublicInbox/SearchMsg.pm b/lib/PublicInbox/SearchMsg.pm index 3891823..25b7072 100644 --- a/lib/PublicInbox/SearchMsg.pm +++ b/lib/PublicInbox/SearchMsg.pm @@ -127,22 +127,27 @@ sub ensure_metadata { sub mini_mime { my ($self) = @_; $self->ensure_metadata; - my @h = ( - Subject => $self->subject, + my @hs = ( + 'Subject' => $self->subject, 'X-PI-From' => $self->from_name, - 'X-PI-TS' => $self->ts, - 'Message-ID' => "<$self->{mid}>", + ); + my @h = ( # prevent Email::Simple::Creator from running, # this header is useless for threading as we use X-PI-TS # for sorting and display: 'Date' => EPOCH_822, + 'Message-ID' => "<$self->{mid}>", + 'X-PI-TS' => $self->ts, ); - - my $refs = $self->{references_sorted}; - my $mime = Email::MIME->create(header_str => \@h); + if (my $refs = $self->{references_sorted}) { + push @h, [ References => $refs ]; + } + my $mime = Email::MIME->create(header_str => \@hs, header => \@h); my $h = $mime->header_obj; - $h->header_set('References', $refs) if (defined $refs); + + # set these headers manually since Encode::encode('MIME-Q', ...) + # will add spaces to long values when using header_str above. # drop useless headers Email::MIME set for us $h->header_set('Date'); -- EW