[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 26171e0: Correct hack-local-variables change from T
From: |
Alan Mackenzie |
Subject: |
[Emacs-diffs] master 26171e0: Correct hack-local-variables change from Thu May 5 11:05:49 2016 +0000 |
Date: |
Fri, 06 May 2016 19:00:59 +0000 |
branch: master
commit 26171e02773b9b2383f412dd79d241385d2d20df
Author: Alan Mackenzie <address@hidden>
Commit: Alan Mackenzie <address@hidden>
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.
---
etc/NEWS | 5 +++++
lisp/files.el | 5 ++++-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/etc/NEWS b/etc/NEWS
index 29559d1..1d5d0d6 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -156,6 +156,11 @@ 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.
diff --git a/lisp/files.el b/lisp/files.el
index d89b2f5..21f7bdc 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -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:".
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master 26171e0: Correct hack-local-variables change from Thu May 5 11:05:49 2016 +0000,
Alan Mackenzie <=