Commit 26171e02 authored by Alan Mackenzie's avatar Alan Mackenzie
Browse files

Correct hack-local-variables change from Thu May 5 11:05:49 2016 +0000

Prevent hack-local-variables being called from the fundamental-mode mode call
early in normal-mode.  This fixes bug #23460 and bug #23463.

* lisp/files.el (normal-mode) Replace call to fundamental-mode with calls to
the things it calls, with the exception of hack-local-variables.

* etc/NEWS: Add an entry to note the calling of hack-local-variables at each
major mode initialization.
parent 81204b27
......@@ -155,6 +155,11 @@ These variables are for users who would like to avoid the small
probability of data corruption due to techniques Emacs uses to recover
in these situations.
+++
** File local and directory local variables are now initialized each
time the major mode is set, not just when the file is first visited.
These local variables will thus not vanish on setting a major mode.
+++
** A second dir-local file (.dir-locals-2.el) is now accepted.
See the variable 'dir-locals-file-2' for more information.
......
......@@ -2316,7 +2316,10 @@ not set local variables (though we do notice a mode specified with -*-.)
or from Lisp without specifying the optional argument FIND-FILE;
in that case, this function acts as if `enable-local-variables' were t."
(interactive)
(fundamental-mode)
(kill-all-local-variables)
(unless delay-mode-hooks
(run-hooks 'change-major-mode-after-body-hook
'after-change-major-mode-hook))
(let ((enable-local-variables (or (not find-file) enable-local-variables)))
;; FIXME this is less efficient than it could be, since both
;; s-a-m and h-l-v may parse the same regions, looking for "mode:".
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment