about summary refs log tree commit homepage
path: root/lib
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2019-10-31 09:19:38 +0000
committerEric Wong <e@80x24.org>2019-10-31 09:20:04 +0000
commitecf084d1f59f34f24eefbf0c64159ca96b489f73 (patch)
treeb66fa96ee44331801f94dea959f61ed283335005 /lib
parentcb80e56b43750083bfaefc8c1fa8598e473113de (diff)
downloadpublic-inbox-ecf084d1f59f34f24eefbf0c64159ca96b489f73.tar.gz
hval: replace "&apos;" with "&#39;" for compatibility
While testing 216light.css changes, I managed to hit some cases
where dillo failed to render &apos; correctly, but I also can't
reproduce it reliably.  Anyways, it's definitely a problem with
some old browsers and newer versions of highlight already work
around it, but Debian 10.x has 3.41, so use "&#39;" to maximize
compatibility.
Diffstat (limited to 'lib')
-rw-r--r--lib/PublicInbox/Hval.pm3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/PublicInbox/Hval.pm b/lib/PublicInbox/Hval.pm
index c134e297..4a79439f 100644
--- a/lib/PublicInbox/Hval.pm
+++ b/lib/PublicInbox/Hval.pm
@@ -58,8 +58,11 @@ my %xhtml_map = (
 $xhtml_map{chr($_)} = sprintf('\\x%02x', $_) for (0..31);
 %xhtml_map = (%xhtml_map, %escape_sequence);
 
+# for post-processing the output of highlight.pm and perhaps other
+# highlighers in the future
 sub src_escape ($) {
         $_[0] =~ s/\r\n/\n/sg;
+        $_[0] =~ s/&apos;/&#39;/sg; # workaround https://bugs.debian.org/927409
         $_[0] =~ s/([\x7f\x00-\x1f])/$xhtml_map{$1}/sge;
         $_[0] = $enc_ascii->encode($_[0], Encode::HTMLCREF);
 }