]> git.eshelyaron.com Git - emacs.git/commitdiff
Better support utf-8-with-signature and utf-8-hfs in HTML
authorEli Zaretskii <eliz@gnu.org>
Sat, 11 Aug 2018 09:01:37 +0000 (12:01 +0300)
committerEli Zaretskii <eliz@gnu.org>
Sat, 11 Aug 2018 09:01:37 +0000 (12:01 +0300)
* lisp/international/mule.el (sgml-html-meta-auto-coding-function):
Support UTF-8 with BOM and utf-8-hfs as variants of UTF-8, and
obey the buffer's encoding if it is one of these variants, instead
of re-encoding in UTF-8 proper.  (Bug#20623)

lisp/international/mule.el

index 4d0081f57793bf70b2884c4281dce8611cffb6ff..1488810002077d90cbe4e680453e49cd6c2769a0 100644 (file)
@@ -2544,7 +2544,17 @@ This function is intended to be added to `auto-coding-functions'."
       (let* ((match (match-string 2))
             (sym (intern (downcase match))))
        (if (coding-system-p sym)
-           sym
+            ;; If the encoding tag is UTF-8 and the buffer's
+            ;; encoding is one of the variants of UTF-8, use the
+            ;; buffer's encoding.  This allows, e.g., saving an
+            ;; HTML file as UTF-8 with BOM when the tag says UTF-8.
+            (let ((sym-type (coding-system-type sym))
+                  (bfcs-type
+                   (coding-system-type buffer-file-coding-system)))
+              (if (and (coding-system-equal 'utf-8 sym-type)
+                       (coding-system-equal 'utf-8 bfcs-type))
+                  buffer-file-coding-system
+               sym))
          (message "Warning: unknown coding system \"%s\"" match)
          nil)))))