From a869308616fbfe71e5a6ede6cb2be5fcc598dd1d Mon Sep 17 00:00:00 2001 From: Luc Teirlinck Date: Sat, 18 Sep 2004 23:57:10 +0000 Subject: [PATCH] (after-change-major-mode-hook): New variable. (run-mode-hooks): Implement it. --- lisp/subr.el | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lisp/subr.el b/lisp/subr.el index d46263d383d..9db8b6c1b11 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -1937,6 +1937,10 @@ in BODY." (make-variable-buffer-local 'delayed-mode-hooks) (put 'delay-mode-hooks 'permanent-local t) +(defvar after-change-major-mode-hook nil + "Mode independent hook run after changing major modes. +This is run just before the mode dependent hooks.") + (defun run-mode-hooks (&rest hooks) "Run mode hooks `delayed-mode-hooks' and HOOKS, or delay HOOKS. Execution is delayed if `delay-mode-hooks' is non-nil. @@ -1948,6 +1952,7 @@ Major mode functions should use this." ;; 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) + (run-hooks 'after-change-major-mode-hook) (apply 'run-hooks hooks))) (defmacro delay-mode-hooks (&rest body) -- 2.39.2