1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-31 11:13:50 +00:00

* files.el (hack-local-variables): Warn about misplaced lexical-binding.

(hack-local-variables--warned-lexical): New.

Fixes: debbugs:15616
This commit is contained in:
Glenn Morris 2013-10-15 18:33:16 -07:00
parent 62ad85e6af
commit 012e2f9fda
2 changed files with 19 additions and 7 deletions

View File

@ -1,5 +1,9 @@
2013-10-16 Glenn Morris <rgm@gnu.org>
* files.el (hack-local-variables--warned-lexical): New.
(hack-local-variables):
Warn about misplaced lexical-binding. (Bug#15616)
* net/eww.el (eww-render): Always set eww-current-url,
and update header line. (Bug#15622)
(eww-display-html): ... Rather than just doing it here.

View File

@ -3154,6 +3154,9 @@ DIR-NAME is the name of the associated directory. Otherwise it is nil."
(assq-delete-all (car elt) file-local-variables-alist)))
(push elt file-local-variables-alist)))))
;; TODO? Warn once per file rather than once per session?
(defvar hack-local-variables--warned-lexical nil)
(defun hack-local-variables (&optional mode-only)
"Parse and put into effect this buffer's local variables spec.
Uses `hack-local-variables-apply' to apply the variables.
@ -3275,13 +3278,18 @@ local variables, but directory-local variables may still be applied."
"-minor\\'"
(setq val2 (downcase (symbol-name val)))))
(setq result (intern (concat val2 "-mode"))))
(unless (eq var 'coding)
(condition-case nil
(push (cons (if (eq var 'eval)
'eval
(indirect-variable var))
val) result)
(error nil)))))
(cond ((eq var 'coding))
((eq var 'lexical-binding)
(unless hack-local-variables--warned-lexical
(setq hack-local-variables--warned-lexical t)
(display-warning :warning
"Specify `lexical-binding' on the first line, not at the end")))
(t
(ignore-errors
(push (cons (if (eq var 'eval)
'eval
(indirect-variable var))
val) result))))))
(forward-line 1))))))))
;; Now we've read all the local variables.
;; If MODE-ONLY is non-nil, return whether the mode was specified.