lib/PublicInbox/Linkify.pm | 2 ++ lib/PublicInbox/View.pm | 8 ++------ lib/PublicInbox/ViewDiff.pm | 31 +++++++++++++------------------ lib/PublicInbox/ViewVCS.pm | 6 ++---- lib/PublicInbox/WwwListing.pm | 3 +-- diff --git a/lib/PublicInbox/Linkify.pm b/lib/PublicInbox/Linkify.pm index 77b94f56af4fc104789ed76ce58483afbd98fd38..199457af351910c0a16b6250c74a48ee90e23c86 100644 --- a/lib/PublicInbox/Linkify.pm +++ b/lib/PublicInbox/Linkify.pm @@ -120,4 +120,6 @@ } !ge; } +sub to_html { linkify_2($_[0], ascii_html(linkify_1(@_))) } + 1; diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm index fd1bd7e2add29f423398dc6b32b6093a820537ea..e604aee0d84106d83ce487c119d79e662400c268 100644 --- a/lib/PublicInbox/View.pm +++ b/lib/PublicInbox/View.pm @@ -496,13 +496,10 @@ sub flush_quote { my ($s, $l, $quot) = @_; - # show everything in the full version with anchor from - # short version (see above) - my $rv = $l->linkify_1($$quot); + my $rv = $l->to_html($$quot); # we use a here to allow users to specify their own # color for quoted text - $rv = $l->linkify_2(ascii_html($rv)); $$quot = undef; $$s .= qq() . $rv . '' } @@ -608,8 +605,7 @@ $cur = undef; flush_diff($rv, $ctx, $l); } else { # regular lines, OK - $l->linkify_1($cur); - $$rv .= $l->linkify_2(ascii_html($cur)); + $$rv .= $l->to_html($cur); $cur = undef; } } diff --git a/lib/PublicInbox/ViewDiff.pm b/lib/PublicInbox/ViewDiff.pm index 10d71004caab28e1d9920dff3e0c11714126756e..be0c0452d198112599fa593f9aab368097ad1103 100644 --- a/lib/PublicInbox/ViewDiff.pm +++ b/lib/PublicInbox/ViewDiff.pm @@ -44,11 +44,6 @@ # cf. git diff.c :: get_compact_summary my $DIFFSTAT_COMMENT = qr/\((?:new|gone|(?:(?:new|mode) [\+\-][lx]))\)/; -sub to_html ($$) { - $_[0]->linkify_1($_[1]); - $_[0]->linkify_2(ascii_html($_[1])); -} - # link to line numbers in blobs sub diff_hunk ($$$$) { my ($dctx, $spfx, $ca, $cb) = @_; @@ -107,7 +102,7 @@ $ctx->{-anchors}->{$attr} = 1; my $spaces = ($orig =~ s/( +)\z//) ? $1 : ''; $$dst .= " " . ascii_html($orig) . '' . $spaces . - to_html($linkify, $rest); + $linkify->to_html($rest); return 1; } undef; @@ -116,7 +111,7 @@ sub anchor1 ($$$$$) { my ($dst, $ctx, $linkify, $pb, $s) = @_; my $attr = to_attr($ctx->{-apfx}.$pb) or return; - my $line = to_html($linkify, $s); + my $line = $linkify->to_html($s); my $ok = delete $ctx->{-anchors}->{$attr}; @@ -158,7 +153,7 @@ anchor0($dst, $ctx, $linkify, $1, $2) and next; } elsif ($state2class[$state]) { to_state($dst, $state, DSTATE_CTX); } - $$dst .= to_html($linkify, $s); + $$dst .= $linkify->to_html($s); } elsif ($s =~ /^-- $/) { # email signature begins $state == DSTATE_INIT or to_state($dst, $state, DSTATE_INIT); @@ -178,53 +173,53 @@ $dctx->{Q} .= '&a='. uri_escape_utf8($pa, UNSAFE); } anchor1($dst, $ctx, $linkify, $pb, $s) and next; - $$dst .= to_html($linkify, $s); + $$dst .= $linkify->to_html($s); } elsif ($s =~ s/^(index $OID_NULL\.\.)($OID_BLOB)\b//o) { $$dst .= $1 . oid($dctx, $spfx, $2); $dctx = { Q => '' }; - $$dst .= to_html($linkify, $s) ; + $$dst .= $linkify->to_html($s) ; } elsif ($s =~ s/^index ($OID_BLOB)(\.\.$OID_NULL)\b//o) { $$dst .= 'index ' . oid($dctx, $spfx, $1) . $2; $dctx = { Q => '' }; - $$dst .= to_html($linkify, $s); + $$dst .= $linkify->to_html($s); } elsif ($s =~ /^index ($OID_BLOB)\.\.($OID_BLOB)/o) { $dctx->{oid_a} = $1; $dctx->{oid_b} = $2; - $$dst .= to_html($linkify, $s); + $$dst .= $linkify->to_html($s); } elsif ($s =~ s/^@@ (\S+) (\S+) @@//) { $$dst .= '' if $state2class[$state]; $$dst .= qq(); $$dst .= diff_hunk($dctx, $spfx, $1, $2); $$dst .= ''; $state = DSTATE_CTX; - $$dst .= to_html($linkify, $s); + $$dst .= $linkify->to_html($s); } elsif ($s =~ m!^--- (?:$PATH_A)!o || $s =~ m!^\+{3} (?:$PATH_B)!o) { # color only (no oid link) if missing dctx->{oid_*} $state <= DSTATE_STAT and to_state($dst, $state, DSTATE_HEAD); - $$dst .= to_html($linkify, $s); + $$dst .= $linkify->to_html($s); } elsif ($s =~ /^\+/) { if ($state != DSTATE_ADD && $state > DSTATE_STAT) { to_state($dst, $state, DSTATE_ADD); } - $$dst .= to_html($linkify, $s); + $$dst .= $linkify->to_html($s); } elsif ($s =~ /^-/) { if ($state != DSTATE_DEL && $state > DSTATE_STAT) { to_state($dst, $state, DSTATE_DEL); } - $$dst .= to_html($linkify, $s); + $$dst .= $linkify->to_html($s); # ignore the following lines in headers: } elsif ($s =~ /^(?:dis)similarity index/ || $s =~ /^(?:old|new) mode/ || $s =~ /^(?:deleted|new) file mode/ || $s =~ /^(?:copy|rename) (?:from|to) / || $s =~ /^(?:dis)?similarity index /) { - $$dst .= to_html($linkify, $s); + $$dst .= $linkify->to_html($s); } else { $state <= DSTATE_STAT or to_state($dst, $state, DSTATE_INIT); - $$dst .= to_html($linkify, $s); + $$dst .= $linkify->to_html($s); } } @$diff = (); diff --git a/lib/PublicInbox/ViewVCS.pm b/lib/PublicInbox/ViewVCS.pm index fdca70cb283fbc20bc9d67361ed4699edd3e79ce..77b3ca2814e104aea306c19e179ceece1167d7ef 100644 --- a/lib/PublicInbox/ViewVCS.pm +++ b/lib/PublicInbox/ViewVCS.pm @@ -90,8 +90,7 @@ return html_page($ctx, 500, $logref); } my $l = PublicInbox::Linkify->new; utf8::decode($$bref); - $l->linkify_1($$bref); - $$bref = '
'. $l->linkify_2(ascii_html($$bref));
+	$$bref = '
'. $l->to_html($$bref);
 	$$bref .= '

' . $$logref; html_page($ctx, 200, $bref); } @@ -125,9 +124,8 @@ $log = do { local $/; <$log> }; my $ref = ref($res); my $l = PublicInbox::Linkify->new; - $l->linkify_1($log); $log = '
debug log:

' .
-		$l->linkify_2(ascii_html($log)) . '
'; + $l->to_html($log) . '
'; $res or return html_page($ctx, 404, \$log); $ref eq 'ARRAY' or return html_page($ctx, 500, \$log); diff --git a/lib/PublicInbox/WwwListing.pm b/lib/PublicInbox/WwwListing.pm index 8d6100375e65df772fbe7f0733716b51ddfa5dab..37ffffc1c3f48684de525806cda82329a54f08d2 100644 --- a/lib/PublicInbox/WwwListing.pm +++ b/lib/PublicInbox/WwwListing.pm @@ -111,8 +111,7 @@ } map { [ $_->modified, $_ ] } @$list; my $tmp = join("\n", map { ibx_entry(@$_, $env) } @$list); my $l = PublicInbox::Linkify->new; - $l->linkify_1($tmp); - $out = '
'.$l->linkify_2(ascii_html($tmp)).'

'; + $out = '
'.$l->to_html($tmp).'

'; } $out = "$title" . $out; $out .= '
'. PublicInbox::WwwStream::code_footer($env) .