(add-hook): Fix regression
* lisp/subr.el (add-hook): When the hook has no local part yet, don't set `local` to t, so we set the right part of the depth-sym. (remove-hook): Don't modify the depth alist by side-effect since I'm not completely sure it's safe.
This commit is contained in:
parent
659eca9ed8
commit
8adc3672ac
1 changed files with 4 additions and 2 deletions
|
@ -1905,7 +1905,9 @@ performance impact when running `add-hook' and `remove-hook'."
|
|||
(set (make-local-variable hook) (list t)))
|
||||
;; Detect the case where make-local-variable was used on a hook
|
||||
;; and do what we used to do.
|
||||
(unless (and (consp (symbol-value hook)) (memq t (symbol-value hook)))
|
||||
(when (and (local-variable-if-set-p hook)
|
||||
(not (and (consp (symbol-value hook))
|
||||
(memq t (symbol-value hook)))))
|
||||
(setq local t)))
|
||||
(let ((hook-value (if local (symbol-value hook) (default-value hook))))
|
||||
;; If the hook value is a single function, turn it into a list.
|
||||
|
@ -2020,7 +2022,7 @@ one will be removed."
|
|||
(when di
|
||||
(setf (if local (symbol-value depth-sym)
|
||||
(default-value depth-sym))
|
||||
(delq di depth-alist)))))
|
||||
(remq di depth-alist)))))
|
||||
;; If the function is on the global hook, we need to shadow it locally
|
||||
;;(when (and local (member function (default-value hook))
|
||||
;; (not (member (cons 'not function) hook-value)))
|
||||
|
|
Loading…
Add table
Reference in a new issue