]> git.eshelyaron.com Git - emacs.git/commitdiff
Only insert XML declarations in nxml-mode when the buffer is empty
authorLars Ingebrigtsen <larsi@gnus.org>
Sat, 27 Jul 2019 12:01:10 +0000 (14:01 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Sat, 27 Jul 2019 12:01:10 +0000 (14:01 +0200)
* 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.

lisp/nxml/nxml-mode.el

index ad78d086c74c052fe7feebef02a422f061ef8077..623a666662775afbc706f0a723affa92e3cd21b8 100644 (file)
@@ -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