diff options
author | Lars Ingebrigtsen <larsi@gnus.org> | 2017-10-26 21:48:46 +0200 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2017-10-26 21:49:00 +0200 |
commit | 1ad56d0a6bdd07c722a3c161096a16f70d1cbb35 (patch) | |
tree | f4923d7f52e604a6af14948b435c951908a01993 /lisp/svg.el | |
parent | a0e5a02125a62d3c4f09abea3a0085111ddffa77 (diff) | |
download | emacs-1ad56d0a6bdd07c722a3c161096a16f70d1cbb35.tar.gz |
Fix up svg text encoding
* lisp/svg.el (svg--encode-text): The SVG driver doesn't like
it if we use ' for apostrophe, so use our own encoding
function instead of relying on the xml one.
Diffstat (limited to 'lisp/svg.el')
-rw-r--r-- | lisp/svg.el | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lisp/svg.el b/lisp/svg.el index 42619ed3519..ae7f1c57c02 100644 --- a/lisp/svg.el +++ b/lisp/svg.el @@ -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 '(("&" . "&") + ("<" . "<") + (">" . ">"))) + (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))) |