diff options
author | Eric Wong <e@80x24.org> | 2014-04-15 06:18:43 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2014-04-15 06:18:43 +0000 |
commit | 27beeb0425cd92343d3d529e37f01de8982a1078 (patch) | |
tree | 576598f590a3809b22514a9cca53f808278adddd | |
parent | a9c1a93cfa88e19477e025ce4f451086e5d0213e (diff) | |
download | public-inbox-27beeb0425cd92343d3d529e37f01de8982a1078.tar.gz |
We may be breaking some parsers or allowing more breakage to slip through without quotes. We waste some bytes, though.
-rw-r--r-- | lib/PublicInbox/Feed.pm | 6 | ||||
-rw-r--r-- | lib/PublicInbox/View.pm | 11 | ||||
-rw-r--r-- | t/view.t | 4 |
3 files changed, 11 insertions, 10 deletions
diff --git a/lib/PublicInbox/Feed.pm b/lib/PublicInbox/Feed.pm index 16b860cb..b08bd883 100644 --- a/lib/PublicInbox/Feed.pm +++ b/lib/PublicInbox/Feed.pm @@ -69,8 +69,8 @@ sub generate_html_index { $th->thread; my @args = ( "<html><head><title>$title</title>" . - '<link rel=alternate title=Atom.feed href=' . - $feed_opts->{atomurl} . ' type="application/atom+xml"/>' . + '<link rel=alternate title=Atom.feed href="' . + $feed_opts->{atomurl} . '" type="application/atom+xml"/>' . '</head><body><pre>'); push @args, $feed_opts->{midurl}; dump_html_line($_, 0, \@args) for $th->rootset; @@ -217,7 +217,7 @@ sub dump_html_line { (defined($from) && length($from)) or $from = $from[0]->address; $from = escapeHTML($from); $subj = escapeHTML($subj); - $args->[0] .= "<a href=$url>`-> $subj</a> $from\n"; + $args->[0] .= "<a href=\"$url.html\">`-> $subj</a> $from\n"; } else { $args->[0] .= "[ Message not available ]\n"; } diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm index 9237f323..7c92cbab 100644 --- a/lib/PublicInbox/View.pm +++ b/lib/PublicInbox/View.pm @@ -83,8 +83,8 @@ sub add_text_body_short { $cur .= shift(@sum) . ' '; } while (@sum && length($cur) < 68); $cur=~ s/ \z/ .../; - "> <<a href=${full_pfx}#q${part_nr}_" . $n++ . - ">$cur<\/a>>"; + "> <<a href=\"${full_pfx}#q${part_nr}_" . $n++ . + "\">$cur<\/a>>"; } else { $cur; } @@ -140,14 +140,15 @@ sub headers_to_html_header { my $mid = $simple->header('Message-ID'); if (defined $mid) { my ($html, $href) = trim_message_id($mid); - $rv .= "Message-ID: <a href=$href.html>$html</a> "; - $rv .= "(<a href=$href.txt>original</a>)\n"; + $rv .= "Message-ID: <<a href=\"$href.html\">$html</a>> "; + $rv .= "(<a href=\"$href.txt\">original</a>)\n"; } my $irp = $simple->header('In-Reply-To'); if (defined $irp) { my ($html, $href) = trim_message_id($irp); - $rv .= "In-Reply-To: <a href=$href.html>$html</a>\n"; + $rv .= "In-Reply-To: <"; + $rv .= "<a href=\"$href.html\">$html</a>>\n"; } $rv .= "\n"; @@ -33,7 +33,7 @@ EOF my $html = PublicInbox::View->as_html($s); # ghetto - like($html, qr/<a href="?hello%40/s, "MID link present"); + like($html, qr/<a href="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/, @@ -44,7 +44,7 @@ EOF my $short = PublicInbox::View->as_html($s, $pfx); like($short, qr/\n> keep this inline/, "short quoted text is inline"); - like($short, qr/<a href=\Q$pfx\E#[^>]+>Long and wordy/, + like($short, qr/<a href="\Q$pfx\E#[^>]+>Long and wordy/, "long quoted text is made into a link"); ok(length($short) < length($html), "short page is shorter"); } |