lib/PublicInbox/View.pm | 26 +++++++++++++++++++------- t/view.t | 6 +++--- diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm index 125fcd622bc15cfe389fcb6898cbb0f49c5b7961..08849a9207abc130c237c2a3e354fa49f41a3032 100644 --- a/lib/PublicInbox/View.pm +++ b/lib/PublicInbox/View.pm @@ -60,6 +60,15 @@ $pad x= ($len/2) if ($len > 0); "$pad " . escapeHTML($fn) . " $pad\n"; } +sub trim_message_id { + my ($mid) = @_; + $mid =~ tr/<>//d; + my $html = escapeHTML($mid); + my $href = escapeHTML(escape($mid)); + + ($html, $href); +} + sub headers_to_html_header { my ($simple) = @_; @@ -79,15 +88,18 @@ push @title, $v; } } - foreach my $h (qw(Message-ID In-Reply-To)) { - my $v = $simple->header($h); - defined $v or next; - $v =~ tr/<>//d; - my $html = escapeHTML($v); - my $href = escapeHTML(escape($v)); - $rv .= "$h: $html\n"; + my $mid = $simple->header('Message-ID'); + if (defined $mid) { + my ($html, $href) = trim_message_id($mid); + $rv .= "Message-ID: $html "; + $rv .= "(raw message)\n"; } + my $irp = $simple->header('In-Reply-To'); + if (defined $irp) { + my ($html, $href) = trim_message_id($irp); + $rv .= "In-Reply-To: $html\n"; + } $rv .= "\n"; return ("