aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2010-04-28 11:18:37 -0400
committerStefan Monnier2010-04-28 11:18:37 -0400
commit56924d996f1ed21fdcfedd80792a5fe718b3f831 (patch)
treeff1484bbd413ba9faffd9a9b20e6f6a1a7b16e84
parent106c6f743273e9119c0a38f79e7aaf3df3596c51 (diff)
downloademacs-56924d996f1ed21fdcfedd80792a5fe718b3f831.tar.gz
emacs-56924d996f1ed21fdcfedd80792a5fe718b3f831.zip
Make it possible to locally disable a globally enabled mode.
* simple.el (fundamental-mode): Run fundamental-mode-hook. * emacs-lisp/derived.el (define-derived-mode): Use fundamental-mode rather than kill-all-local-variables so it runs fundamental-mode-hook. * emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Use fundamental-mode-hook to run MODE-enable-in-buffers earlier, so that subsequent hooks get a chance to disable it.
-rw-r--r--lisp/ChangeLog10
-rw-r--r--lisp/emacs-lisp/derived.el2
-rw-r--r--lisp/emacs-lisp/easy-mmode.el2
-rw-r--r--lisp/simple.el3
4 files changed, 14 insertions, 3 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index c35314af1b0..03deb82d0b1 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,13 @@
12010-04-28 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 Make it possible to locally disable a globally enabled mode.
4 * simple.el (fundamental-mode): Run fundamental-mode-hook.
5 * emacs-lisp/derived.el (define-derived-mode): Use fundamental-mode
6 rather than kill-all-local-variables so it runs fundamental-mode-hook.
7 * emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
8 Use fundamental-mode-hook to run MODE-enable-in-buffers earlier, so
9 that subsequent hooks get a chance to disable it.
10
12010-04-27 Stefan Monnier <monnier@iro.umontreal.ca> 112010-04-27 Stefan Monnier <monnier@iro.umontreal.ca>
2 12
3 * emacs-lisp/easy-mmode.el (define-globalized-minor-mode): 13 * emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
diff --git a/lisp/emacs-lisp/derived.el b/lisp/emacs-lisp/derived.el
index debef5535f5..d6f717ccda7 100644
--- a/lisp/emacs-lisp/derived.el
+++ b/lisp/emacs-lisp/derived.el
@@ -230,7 +230,7 @@ No problems result if this variable is not bound.
230 ; Run the parent. 230 ; Run the parent.
231 (delay-mode-hooks 231 (delay-mode-hooks
232 232
233 (,(or parent 'kill-all-local-variables)) 233 (,(or parent 'fundamental-mode))
234 ; Identify the child mode. 234 ; Identify the child mode.
235 (setq major-mode (quote ,child)) 235 (setq major-mode (quote ,child))
236 (setq mode-name ,name) 236 (setq mode-name ,name)
diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el
index d18aa230b75..bebff6adae8 100644
--- a/lisp/emacs-lisp/easy-mmode.el
+++ b/lisp/emacs-lisp/easy-mmode.el
@@ -338,9 +338,11 @@ See `%s' for more information on %s."
338 (progn 338 (progn
339 (add-hook 'after-change-major-mode-hook 339 (add-hook 'after-change-major-mode-hook
340 ',MODE-enable-in-buffers) 340 ',MODE-enable-in-buffers)
341 (add-hook 'fundamental-mode-hook ',MODE-enable-in-buffers)
341 (add-hook 'find-file-hook ',MODE-check-buffers) 342 (add-hook 'find-file-hook ',MODE-check-buffers)
342 (add-hook 'change-major-mode-hook ',MODE-cmhh)) 343 (add-hook 'change-major-mode-hook ',MODE-cmhh))
343 (remove-hook 'after-change-major-mode-hook ',MODE-enable-in-buffers) 344 (remove-hook 'after-change-major-mode-hook ',MODE-enable-in-buffers)
345 (remove-hook 'fundamental-mode-hook ',MODE-enable-in-buffers)
344 (remove-hook 'find-file-hook ',MODE-check-buffers) 346 (remove-hook 'find-file-hook ',MODE-check-buffers)
345 (remove-hook 'change-major-mode-hook ',MODE-cmhh)) 347 (remove-hook 'change-major-mode-hook ',MODE-cmhh))
346 348
diff --git a/lisp/simple.el b/lisp/simple.el
index f609755e823..cc70409ccd4 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -401,8 +401,7 @@ location."
401Other major modes are defined by comparison with this one." 401Other major modes are defined by comparison with this one."
402 (interactive) 402 (interactive)
403 (kill-all-local-variables) 403 (kill-all-local-variables)
404 (unless delay-mode-hooks 404 (run-mode-hooks 'fundamental-mode-hook))
405 (run-hooks 'after-change-major-mode-hook)))
406 405
407;; Special major modes to view specially formatted data rather than files. 406;; Special major modes to view specially formatted data rather than files.
408 407