(remove-hook): New function, analogous to add-hook. This
is now the recommended way to remove a hook that you have added.
This commit is contained in:
parent
240d522211
commit
24980d168f
1 changed files with 15 additions and 0 deletions
15
lisp/subr.el
15
lisp/subr.el
|
@ -493,6 +493,21 @@ function, it is changed to a list of functions."
|
|||
(nconc (symbol-value hook) (list function))
|
||||
(cons function (symbol-value hook))))))
|
||||
|
||||
(defun remove-hook (hook function)
|
||||
"Remove from the value of HOOK the function FUNCTION.
|
||||
HOOK should be a symbol, and FUNCTION may be any valid function. If
|
||||
FUNCTION isn't the value of HOOK, or, if FUNCTION doesn't appear in the
|
||||
list of hooks to run in HOOK, then nothing is done. See add-hook."
|
||||
(if (or (not (boundp hook)) ;unbound symbol, or
|
||||
(null (symbol-value hook)) ;value is nil, or
|
||||
(null function)) ;function is nil, then
|
||||
nil ;Do nothing.
|
||||
(let ((hook-value (symbol-value hook)))
|
||||
(if (consp hook-value)
|
||||
(setq hook-value (delete function hook-value))
|
||||
(if (eq hook-value function)
|
||||
(setq hook-value nil)))
|
||||
(set hook hook-value))))
|
||||
|
||||
;;;; Specifying things to do after certain files are loaded.
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue