diff options
author | Eli Zaretskii <eliz@gnu.org> | 2019-03-02 10:32:06 +0200 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2019-03-02 10:32:06 +0200 |
commit | 04cad5e8eac6fee415c0951d673e8a27534e727d (patch) | |
tree | 7a2188c920222c948566a4927cfdd2039463f559 | |
parent | a89fabe96396b2197cffc5a9e694004e1c691fa9 (diff) | |
download | emacs-04cad5e8eac6fee415c0951d673e8a27534e727d.tar.gz |
Fix visiting XML files with non-Unix EOL format
* lisp/international/mule.el (sgml-xml-auto-coding-function)
(sgml-html-meta-auto-coding-function): Don't use
'buffer-file-coding-system' if the buffer is unibyte.
(Bug#34704)
-rw-r--r-- | lisp/international/mule.el | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/lisp/international/mule.el b/lisp/international/mule.el index b47fd4ca69c..58fdd28243a 100644 --- a/lisp/international/mule.el +++ b/lisp/international/mule.el @@ -2500,10 +2500,17 @@ This function is intended to be added to `auto-coding-functions'." (let ((sym-type (coding-system-type sym)) (bfcs-type (coding-system-type buffer-file-coding-system))) - ;; 'charset' will signal an error in - ;; coding-system-equal, since it isn't a - ;; coding-system. So test that up front. - (if (and (not (equal sym-type 'charset)) + ;; If the buffer is unibyte, its encoding is + ;; immaterial (it is just the default value of + ;; buffer-file-coding-system), so we ignore it. + ;; This situation happens when this function is + ;; called as part of visiting a file, as opposed + ;; to when saving a buffer to a file. + (if (and enable-multibyte-characters + ;; 'charset' will signal an error in + ;; coding-system-equal, since it isn't a + ;; coding-system. So test that up front. + (not (equal sym-type 'charset)) (coding-system-equal 'utf-8 sym-type) (coding-system-equal 'utf-8 bfcs-type)) buffer-file-coding-system @@ -2555,7 +2562,8 @@ This function is intended to be added to `auto-coding-functions'." (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) + (if (and enable-multibyte-characters + (coding-system-equal 'utf-8 sym-type) (coding-system-equal 'utf-8 bfcs-type)) buffer-file-coding-system sym)) |