1944 |
(defun run-mode-hooks (&rest hooks) |
(defun run-mode-hooks (&rest hooks) |
1945 |
"Run mode hooks `delayed-mode-hooks' and HOOKS, or delay HOOKS. |
"Run mode hooks `delayed-mode-hooks' and HOOKS, or delay HOOKS. |
1946 |
Execution is delayed if `delay-mode-hooks' is non-nil. |
Execution is delayed if `delay-mode-hooks' is non-nil. |
1947 |
|
If `delay-mode-hooks' is nil, run `after-change-major-mode-hook' |
1948 |
|
after running the mode hooks. |
1949 |
Major mode functions should use this." |
Major mode functions should use this." |
1950 |
(if delay-mode-hooks |
(if delay-mode-hooks |
1951 |
;; Delaying case. |
;; Delaying case. |
1954 |
;; Normal case, just run the hook as before plus any delayed hooks. |
;; Normal case, just run the hook as before plus any delayed hooks. |
1955 |
(setq hooks (nconc (nreverse delayed-mode-hooks) hooks)) |
(setq hooks (nconc (nreverse delayed-mode-hooks) hooks)) |
1956 |
(setq delayed-mode-hooks nil) |
(setq delayed-mode-hooks nil) |
1957 |
(run-hooks 'after-change-major-mode-hook) |
(apply 'run-hooks hooks) |
1958 |
(apply 'run-hooks hooks))) |
(run-hooks 'after-change-major-mode-hook))) |
1959 |
|
|
1960 |
(defmacro delay-mode-hooks (&rest body) |
(defmacro delay-mode-hooks (&rest body) |
1961 |
"Execute BODY, but delay any `run-mode-hooks'. |
"Execute BODY, but delay any `run-mode-hooks'. |