Mercurial > emacs
changeset 108154:cede0252a395
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.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Wed, 28 Apr 2010 11:18:37 -0400 |
parents | 533b15049ee7 |
children | c9ad0799fa6a |
files | lisp/ChangeLog lisp/emacs-lisp/derived.el lisp/emacs-lisp/easy-mmode.el lisp/simple.el |
diffstat | 4 files changed, 14 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Wed Apr 28 00:33:48 2010 -0700 +++ b/lisp/ChangeLog Wed Apr 28 11:18:37 2010 -0400 @@ -1,3 +1,13 @@ +2010-04-28 Stefan Monnier <monnier@iro.umontreal.ca> + + 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. + 2010-04-27 Stefan Monnier <monnier@iro.umontreal.ca> * emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
--- a/lisp/emacs-lisp/derived.el Wed Apr 28 00:33:48 2010 -0700 +++ b/lisp/emacs-lisp/derived.el Wed Apr 28 11:18:37 2010 -0400 @@ -230,7 +230,7 @@ ; Run the parent. (delay-mode-hooks - (,(or parent 'kill-all-local-variables)) + (,(or parent 'fundamental-mode)) ; Identify the child mode. (setq major-mode (quote ,child)) (setq mode-name ,name)
--- a/lisp/emacs-lisp/easy-mmode.el Wed Apr 28 00:33:48 2010 -0700 +++ b/lisp/emacs-lisp/easy-mmode.el Wed Apr 28 11:18:37 2010 -0400 @@ -338,9 +338,11 @@ (progn (add-hook 'after-change-major-mode-hook ',MODE-enable-in-buffers) + (add-hook 'fundamental-mode-hook ',MODE-enable-in-buffers) (add-hook 'find-file-hook ',MODE-check-buffers) (add-hook 'change-major-mode-hook ',MODE-cmhh)) (remove-hook 'after-change-major-mode-hook ',MODE-enable-in-buffers) + (remove-hook 'fundamental-mode-hook ',MODE-enable-in-buffers) (remove-hook 'find-file-hook ',MODE-check-buffers) (remove-hook 'change-major-mode-hook ',MODE-cmhh))
--- a/lisp/simple.el Wed Apr 28 00:33:48 2010 -0700 +++ b/lisp/simple.el Wed Apr 28 11:18:37 2010 -0400 @@ -401,8 +401,7 @@ Other major modes are defined by comparison with this one." (interactive) (kill-all-local-variables) - (unless delay-mode-hooks - (run-hooks 'after-change-major-mode-hook))) + (run-mode-hooks 'fundamental-mode-hook)) ;; Special major modes to view specially formatted data rather than files.