Mercurial > emacs
comparison lisp/emacs-lisp/lucid.el @ 4415:b9ce445fb406
(remove-hook): Doc string added.
Change a single function into a list.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 02 Aug 1993 07:23:24 +0000 |
parents | c910eb73b259 |
children | 96c0a97da147 |
comparison
equal
deleted
inserted
replaced
4414:3356419b94c1 | 4415:b9ce445fb406 |
---|---|
51 (setq tail (cdr tail))) | 51 (setq tail (cdr tail))) |
52 (if tail | 52 (if tail |
53 (setcdr tail new-parent)))) | 53 (setcdr tail new-parent)))) |
54 | 54 |
55 (defun remove-hook (hook-var function) | 55 (defun remove-hook (hook-var function) |
56 "Remove a function from a hook, if it is present. | |
57 First argument HOOK-VAR (a symbol) is the name of a hook, second | |
58 argument FUNCTION is the function to remove (compared with `eq')." | |
56 (if (boundp 'hook-var) | 59 (if (boundp 'hook-var) |
57 (set hook-var (delq function (symbol-value hook-var))))) | 60 (let ((old (symbol-value hook-var))) |
61 ;; If the hook value is a single function, turn it into a list. | |
62 (if (or (not (listp old)) (eq (car old) 'lambda)) | |
63 (set hook-var (list old))) | |
64 ;; Now delete FUNCTION. | |
65 (set hook-var (delq function (symbol-value hook-var)))))) | |
58 | 66 |
59 (defun remprop (symbol prop) | 67 (defun remprop (symbol prop) |
60 (let ((plist (symbol-plist symbol))) | 68 (let ((plist (symbol-plist symbol))) |
61 (while (eq (car plist) prop) | 69 (while (eq (car plist) prop) |
62 (setplist symbol (setq plist (cdr (cdr plist))))) | 70 (setplist symbol (setq plist (cdr (cdr plist))))) |