diff options
-rw-r--r-- | lib/PublicInbox/View.pm | 7 | ||||
-rwxr-xr-x | public-inbox.cgi | 2 | ||||
-rw-r--r-- | t/view.t | 5 |
3 files changed, 9 insertions, 5 deletions
diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm index 5b24706c..355d346a 100644 --- a/lib/PublicInbox/View.pm +++ b/lib/PublicInbox/View.pm @@ -19,7 +19,7 @@ my $enc_mime = find_encoding('MIME-Header'); sub as_html { my ($class, $mime, $full_pfx) = @_; - headers_to_html_header($mime) . + headers_to_html_header($mime, $full_pfx) . multipart_text_as_html($mime, $full_pfx) . '</pre></body></html>'; } @@ -150,7 +150,7 @@ sub ascii_html { } sub headers_to_html_header { - my ($simple) = @_; + my ($simple, $full_pfx) = @_; my $rv = ""; my @title; @@ -180,6 +180,9 @@ sub headers_to_html_header { if (defined $mid) { my ($html, $href) = trim_message_id($mid); $rv .= "Message-ID: <$html> "; + unless ($full_pfx) { + $href = "../m/$href"; + } $rv .= "(<a href=\"$href.txt\">original</a>)\n"; } diff --git a/public-inbox.cgi b/public-inbox.cgi index b9b484be..fc48f2f4 100755 --- a/public-inbox.cgi +++ b/public-inbox.cgi @@ -78,7 +78,7 @@ sub main { } elsif ($path_info =~ m!$LISTNAME_RE/f/(\S+)\.html\z!o) { invalid_list_mid(\%ctx, $1, $2) || get_full_html(\%ctx, $cgi); - # convenience redirect + # convenience redirects, order matters } elsif ($path_info =~ m!$LISTNAME_RE/(?:m|f)/(\S+)\z!o) { invalid_list_mid(\%ctx, $1, $2) || redirect_mid(\%ctx, $cgi); @@ -36,8 +36,8 @@ EOF $s = Email::MIME->new($s->as_string); my $html = PublicInbox::View->as_html($s); - # ghetto - like($html, qr/<a href="hello%40/s, "MID link present"); + # ghetto tests + like($html, qr!<a href="\.\./m/hello%40!s, "MID link present"); like($html, qr/hello world\b/, "body present"); like($html, qr/> keep this inline/, "short quoted text is inline"); like($html, qr/<a name=[^>]+>> Long and wordy/, @@ -46,6 +46,7 @@ EOF # short page my $pfx = "http://example.com/test/f"; my $short = PublicInbox::View->as_html($s, $pfx); + like($short, qr!<a href="hello%40!s, "MID link present"); like($short, qr/\n> keep this inline/, "short quoted text is inline"); like($short, qr/<a href="\Q$pfx\E#[^>]+>Long and wordy/, |