# HG changeset patch # User Richard M. Stallman # Date 780986188 0 # Node ID 92d6de82426a23842053ce6f1d504d76d3b6aa45 # Parent 3af00d95faacc732ce61f74857ca43a7dc8e1fb5 (add-hook, remove-hook): If the hook was made local in the old way, always modify the local value. diff -r 3af00d95faac -r 92d6de82426a lisp/subr.el --- a/lisp/subr.el Sat Oct 01 04:30:14 1994 +0000 +++ b/lisp/subr.el Sat Oct 01 04:36:28 1994 +0000 @@ -652,7 +652,11 @@ (let ((old (symbol-value hook))) (if (or (not (listp old)) (eq (car old) 'lambda)) (set hook (list old)))) - (if local + (if (or local + ;; Detect the case where make-local-variable was used on a hook + ;; and do what we used to do. + (and (local-variable-p hook) + (not (memq t (symbol-value hook))))) ;; Alter the local value only. (or (if (consp function) (member function (symbol-value hook)) @@ -687,7 +691,11 @@ (null (symbol-value hook)) ;value is nil, or (null function)) ;function is nil, then nil ;Do nothing. - (if local + (if (or local + ;; Detect the case where make-local-variable was used on a hook + ;; and do what we used to do. + (and (local-variable-p hook) + (not (memq t (symbol-value hook))))) (let ((hook-value (symbol-value hook))) (if (consp hook-value) (if (member function hook-value)