diff options
author | Chong Yidong <cyd@gnu.org> | 2011-10-27 11:01:40 +0800 |
---|---|---|
committer | Chong Yidong <cyd@gnu.org> | 2011-10-27 11:01:40 +0800 |
commit | 15de15c66d96905aa21f1781861067eebd68b24b (patch) | |
tree | d85f77009ef850db328fa9db03ecf4a2a96e3ca8 /lisp | |
parent | 657d08d30a63536174fe9ec60b7f2cb8de541eb5 (diff) | |
download | emacs-15de15c66d96905aa21f1781861067eebd68b24b.tar.gz emacs-15de15c66d96905aa21f1781861067eebd68b24b.tar.bz2 emacs-15de15c66d96905aa21f1781861067eebd68b24b.zip |
Replace fundamental-mode-hook with change-major-mode-after-body-hook.
* lisp/simple.el (fundamental-mode):
* lisp/emacs-lisp/derived.el (define-derived-mode): Revert 2010-04-28
change introducing fundamental-mode-hook.
* lisp/subr.el (change-major-mode-after-body-hook): New hook.
(run-mode-hooks): Run it.
* lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Use
change-major-mode-before-body-hook.
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/ChangeLog | 12 | ||||
-rw-r--r-- | lisp/emacs-lisp/derived.el | 2 | ||||
-rw-r--r-- | lisp/emacs-lisp/easy-mmode.el | 6 | ||||
-rw-r--r-- | lisp/simple.el | 3 | ||||
-rw-r--r-- | lisp/subr.el | 5 |
5 files changed, 23 insertions, 5 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 9ba25dc89ab..f4a0ceecf93 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,15 @@ +2011-10-27 Chong Yidong <cyd@gnu.org> + + * subr.el (change-major-mode-after-body-hook): New hook. + (run-mode-hooks): Run it. + + * emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Use + change-major-mode-before-body-hook. + + * simple.el (fundamental-mode): + * emacs-lisp/derived.el (define-derived-mode): Revert 2010-04-28 + change introducing fundamental-mode-hook. + 2011-10-26 Juanma Barranquero <lekktu@gmail.com> * term/w32-win.el (w32-default-color-map): Declare obsolete. (Bug#9785) diff --git a/lisp/emacs-lisp/derived.el b/lisp/emacs-lisp/derived.el index 81932f9940a..55ea102ed2a 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. ; Run the parent. (delay-mode-hooks - (,(or parent 'fundamental-mode)) + (,(or parent 'kill-all-local-variables)) ; Identify the child mode. (setq major-mode (quote ,child)) (setq mode-name ,name) diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el index 4b6f4d634ca..bf9f2c9d6ed 100644 --- a/lisp/emacs-lisp/easy-mmode.el +++ b/lisp/emacs-lisp/easy-mmode.el @@ -368,11 +368,13 @@ See `%s' for more information on %s." (progn (add-hook 'after-change-major-mode-hook ',MODE-enable-in-buffers) - (add-hook 'fundamental-mode-hook ',MODE-enable-in-buffers) + (add-hook 'change-major-mode-after-body-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 'change-major-mode-after-body-hook + ',MODE-enable-in-buffers) (remove-hook 'find-file-hook ',MODE-check-buffers) (remove-hook 'change-major-mode-hook ',MODE-cmhh)) diff --git a/lisp/simple.el b/lisp/simple.el index 79de6aea3dd..90d22c817b0 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -349,7 +349,8 @@ location." Other major modes are defined by comparison with this one." (interactive) (kill-all-local-variables) - (run-mode-hooks 'fundamental-mode-hook)) + (unless delay-mode-hooks + (run-hooks 'after-change-major-mode-hook))) ;; Special major modes to view specially formatted data rather than files. diff --git a/lisp/subr.el b/lisp/subr.el index 7ac287d2473..f3cd4dabe20 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -1530,6 +1530,9 @@ if it is empty or a duplicate." (make-variable-buffer-local 'delayed-mode-hooks) (put 'delay-mode-hooks 'permanent-local t) +(defvar change-major-mode-after-body-hook nil + "Normal hook run in major mode functions, before the mode hooks.") + (defvar after-change-major-mode-hook nil "Normal hook run at the very end of major mode functions.") @@ -1546,7 +1549,7 @@ FOO-mode-hook." ;; Normal case, just run the hook as before plus any delayed hooks. (setq hooks (nconc (nreverse delayed-mode-hooks) hooks)) (setq delayed-mode-hooks nil) - (apply 'run-hooks hooks) + (apply 'run-hooks (cons 'change-major-mode-after-body-hook hooks)) (run-hooks 'after-change-major-mode-hook))) (defmacro delay-mode-hooks (&rest body) |