[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/subr.el
From: |
Richard M. Stallman |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/subr.el |
Date: |
Mon, 20 Oct 2003 19:41:18 -0400 |
Index: emacs/lisp/subr.el
diff -c emacs/lisp/subr.el:1.364 emacs/lisp/subr.el:1.365
*** emacs/lisp/subr.el:1.364 Thu Oct 16 09:13:29 2003
--- emacs/lisp/subr.el Mon Oct 20 19:41:18 2003
***************
*** 856,862 ****
(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)))
(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.
--- 856,864 ----
(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.
! (when (and (local-variable-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.
***************
*** 878,908 ****
list of hooks to run in HOOK, then nothing is done. See `add-hook'.
The optional third argument, LOCAL, if non-nil, says to modify
! the hook's buffer-local value rather than its default value.
! This makes the hook buffer-local if needed."
(or (boundp hook) (set hook nil))
(or (default-boundp hook) (set-default hook nil))
! (if local (unless (local-variable-if-set-p 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)))
! (setq local t)))
! (let ((hook-value (if local (symbol-value hook) (default-value hook))))
! ;; Remove the function, for both the list and the non-list cases.
! (if (or (not (listp hook-value)) (eq (car hook-value) 'lambda))
! (if (equal hook-value function) (setq hook-value nil))
! (setq hook-value (delete function (copy-sequence hook-value))))
! ;; 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)))
! ;; (push (cons 'not function) hook-value))
! ;; Set the actual variable
! (if (not local)
! (set-default hook hook-value)
! (if (equal hook-value '(t))
! (kill-local-variable hook)
! (set hook hook-value)))))
(defun add-to-list (list-var element &optional append)
"Add to the value of LIST-VAR the element ELEMENT if it isn't there yet.
--- 880,911 ----
list of hooks to run in HOOK, then nothing is done. See `add-hook'.
The optional third argument, LOCAL, if non-nil, says to modify
! the hook's buffer-local value rather than its default value."
(or (boundp hook) (set hook nil))
(or (default-boundp hook) (set-default hook nil))
! ;; Do nothing if LOCAL is t but this hook has no local binding.
! (unless (and local (not (local-variable-p hook)))
;; Detect the case where make-local-variable was used on a hook
;; and do what we used to do.
! (when (and (local-variable-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))))
! ;; Remove the function, for both the list and the non-list cases.
! (if (or (not (listp hook-value)) (eq (car hook-value) 'lambda))
! (if (equal hook-value function) (setq hook-value nil))
! (setq hook-value (delete function (copy-sequence hook-value))))
! ;; 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)))
! ;; (push (cons 'not function) hook-value))
! ;; Set the actual variable
! (if (not local)
! (set-default hook hook-value)
! (if (equal hook-value '(t))
! (kill-local-variable hook)
! (set hook hook-value))))))
(defun add-to-list (list-var element &optional append)
"Add to the value of LIST-VAR the element ELEMENT if it isn't there yet.