about summary refs log tree commit homepage
path: root/lib/PublicInbox/SearchMsg.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2015-09-04 02:18:10 +0000
committerEric Wong <e@80x24.org>2015-09-04 02:38:45 +0000
commiteb5b64621f6cb5e8cfb24f651d13453b730c1c1b (patch)
treeb3b0ff5f9b42c1e37f8f2b179f443da18b35ccdb /lib/PublicInbox/SearchMsg.pm
parent16ca6b7a57266fcb466ffff005bc1d644bad14c1 (diff)
downloadpublic-inbox-eb5b64621f6cb5e8cfb24f651d13453b730c1c1b.tar.gz
Spaces may be added when using header_str with Email::MIME->create,
so use the normal "header" parameter when setting Message-IDs
and References.
Diffstat (limited to 'lib/PublicInbox/SearchMsg.pm')
-rw-r--r--lib/PublicInbox/SearchMsg.pm21
1 files changed, 13 insertions, 8 deletions
diff --git a/lib/PublicInbox/SearchMsg.pm b/lib/PublicInbox/SearchMsg.pm
index 38918236..e5f3bbc2 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');