From: Lars Ingebrigtsen Date: Sat, 27 Jul 2019 12:01:10 +0000 (+0200) Subject: Only insert XML declarations in nxml-mode when the buffer is empty X-Git-Tag: emacs-27.0.90~1817^2~77 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=d4fce7394345233026e6b427d90e0debe6c3e89e;p=emacs.git Only insert XML declarations in nxml-mode when the buffer is empty * lisp/nxml/nxml-mode.el (nxml-mode): Don't insert the XML declaration unless it's an empty buffer (bug#24978). This avoids the problem of the declaration being inserted by mistake when opening XML files from archives and the like -- the file doesn't exist on the file system there, either, so it would typically lead to doubled XML declarations. --- diff --git a/lisp/nxml/nxml-mode.el b/lisp/nxml/nxml-mode.el index ad78d086c74..623a6666627 100644 --- a/lisp/nxml/nxml-mode.el +++ b/lisp/nxml/nxml-mode.el @@ -530,16 +530,13 @@ Many aspects this mode can be customized using (setq-local syntax-propertize-function #'nxml-syntax-propertize) (add-hook 'change-major-mode-hook #'nxml-cleanup nil t) - ;; Emacs 23 handles the encoding attribute on the xml declaration - ;; transparently to nxml-mode, so there is no longer a need for the below - ;; hook. The hook also had the drawback of overriding explicit user - ;; instruction to save as some encoding other than utf-8. - ;;(add-hook 'write-contents-hooks #'nxml-prepare-to-save) (when (not (and (buffer-file-name) (file-exists-p (buffer-file-name)))) (when (and nxml-default-buffer-file-coding-system (not (local-variable-p 'buffer-file-coding-system))) (setq buffer-file-coding-system nxml-default-buffer-file-coding-system)) - (when nxml-auto-insert-xml-declaration-flag + ;; When starting a new file, insert the XML declaraction. + (when (and nxml-auto-insert-xml-declaration-flag + (zerop (buffer-size))) (nxml-insert-xml-declaration))) (setq font-lock-defaults