]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix up svg text encoding
authorLars Ingebrigtsen <larsi@gnus.org>
Thu, 26 Oct 2017 19:48:46 +0000 (21:48 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Thu, 26 Oct 2017 19:49:00 +0000 (21:49 +0200)
* lisp/svg.el (svg--encode-text): The SVG driver doesn't like
it if we use &apos; for apostrophe, so use our own encoding
function instead of relying on the xml one.

lisp/svg.el

index 42619ed35195dfdbaf5cc61e65800dc206a5d1ff..ae7f1c57c02289a52c04a36fc84408900128e802 100644 (file)
@@ -161,9 +161,15 @@ otherwise.  IMAGE-TYPE should be a MIME image type, like
 
 (defun svg--encode-text (text)
   ;; Apparently the SVG renderer needs to have all non-ASCII
-  ;; characters encoded.
+  ;; characters encoded, and only certain special characters.
   (with-temp-buffer
-    (insert (xml-escape-string text))
+    (insert text)
+    (dolist (substitution '(("&" . "&amp;")
+                           ("<" . "&lt;")
+                           (">" . "&gt;")))
+      (goto-char (point-min))
+      (while (search-forward (car substitution) nil t)
+       (replace-match (cdr substitution) t t nil)))
     (goto-char (point-min))
     (while (not (eobp))
       (let ((char (following-char)))