1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-07 16:10:46 -08:00

* lisp/files-x.el (modify-file-local-variable-prop-line): Add local

variables to the end of the existing comment on the first line.
Use `file-auto-mode-skip' to skip interpreter magic line,
and also skip XML declaration.
This commit is contained in:
Juri Linkov 2013-06-16 01:44:38 +03:00
parent 2809512e04
commit 31489a32f5
2 changed files with 38 additions and 10 deletions

View file

@ -1,3 +1,10 @@
2013-06-15 Juri Linkov <juri@jurta.org>
* files-x.el (modify-file-local-variable-prop-line): Add local
variables to the end of the existing comment on the first line.
Use `file-auto-mode-skip' to skip interpreter magic line,
and also skip XML declaration.
2013-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
* startup.el (package--builtin-versions): New var.

View file

@ -256,19 +256,40 @@ from the -*- line ignoring the input argument VALUE."
(goto-char (point-min))
;; Skip interpreter magic line "#!"
(when (looking-at "^\\(#!\\|'\\\\\"\\)")
;; Skip interpreter magic line "#!" or XML declaration.
(when (or (looking-at file-auto-mode-skip)
(looking-at "<\\?xml[^>\n]*>$"))
(forward-line 1))
(comment-normalize-vars)
(let ((comment-style 'plain)
(comment-start (or comment-start ";;; ")))
(comment-region
(prog1 (point)
(insert "-*-")
(setq beg (point-marker))
(setq end (point-marker))
(insert "-*-\n"))
(point))))
(comment-start (or comment-start ";;; "))
(line-beg (line-beginning-position))
(ce nil))
;; If the first line contains a comment.
(if (save-excursion
(and (looking-at comment-start-skip)
(goto-char (match-end 0))
(re-search-forward comment-end-skip)
(goto-char (match-beginning 0))
;; Still on the same line?
(equal line-beg (line-beginning-position))
(setq ce (point))))
;; Add local variables to the end of the existing comment.
(progn
(goto-char ce)
(insert " -*-")
(setq beg (point-marker))
(setq end (point-marker))
(insert "-*-"))
;; Otherwise, add a new comment before the first line.
(comment-region
(prog1 (point)
(insert "-*-")
(setq beg (point-marker))
(setq end (point-marker))
(insert "-*-\n"))
(point)))))
(cond
((looking-at "[ \t]*\\([^ \t\n\r:;]+\\)\\([ \t]*-\\*-\\)")