]> git.eshelyaron.com Git - emacs.git/commitdiff
Touch up previous shr-dom-to-xml encoding change
authorLars Ingebrigtsen <larsi@gnus.org>
Thu, 3 Oct 2019 14:15:15 +0000 (16:15 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Thu, 3 Oct 2019 14:15:22 +0000 (16:15 +0200)
* lisp/net/shr.el (shr-dom-to-xml): Include an XML declaration if
we're encoding the data.
(shr-parse-image-data): Add comment about why encoding is necessary.

lisp/net/shr.el

index cf32763a4f15c3addc225c21d4bcb1c36365d61c..628cc17a5bd4e95c15fabb64a18ec26a5fda28ed 100644 (file)
@@ -1180,7 +1180,9 @@ Return a string with image data."
                (eq content-type 'image/svg+xml))
       (setq data
             ;; Note that libxml2 doesn't parse everything perfectly,
-            ;; so glitches may occur during this transformation.
+            ;; so glitches may occur during this transformation.  And
+            ;; encode as utf-8: There may be text (and other elements)
+            ;; that are non-ASCII.
            (shr-dom-to-xml
             (libxml-parse-xml-region (point) (point-max)) 'utf-8)))
     ;; SVG images often do not have a specified foreground/background
@@ -1342,7 +1344,10 @@ ones, in case fg and bg are nil."
   (with-temp-buffer
     (shr-dom-print dom)
     (when charset
-      (encode-coding-region (point-min) (point-max) charset))
+      (encode-coding-region (point-min) (point-max) charset)
+      (goto-char (point-min))
+      (insert (format "<?xml version=\"1.0\" encoding=\"%s\"?>\n"
+                      charset)))
     (buffer-string)))
 
 (defun shr-dom-print (dom)