GNU bug report logs -
#1102
23.0.60; add-hook should check that its function arg is a function.
Previous Next
Reported by: Phil Hagelberg <phil <at> hagelb.org>
Date: Mon, 6 Oct 2008 17:45:03 UTC
Severity: wishlist
Tags: wontfix
Done: Glenn Morris <rgm <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
Message #5 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):
add-hook may be called with a function argument that is not a function:
(add-hook 'emacs-lisp-mode-hook 22)
This is functionally a no-op since run-mode-hooks will ignore such
values, but it would probably be better to get an error when add-hook
is called.
Here's a patch. I'm not sure what the convention is for how these
types of error messages should read, so that could be changed.
diff --git a/lisp/subr.el b/lisp/subr.el
index d62b38b..49e9470 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -1132,6 +1132,7 @@ HOOK is void, it is first set to nil. If HOOK's value is a single
function, it is changed to a list of functions."
(or (boundp hook) (set hook nil))
(or (default-boundp hook) (set-default hook nil))
+ (unless (functionp function) (error "`function' argument was not a function"))
(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
In GNU Emacs 23.0.60.1 (i686-pc-linux-gnu, GTK+ Version 2.12.9)
of 2008-09-29 on pdp10
Windowing system distributor `The X.Org Foundation', version 11.0.10400090
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: nil
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: en_US.UTF-8
value of $XMODIFIERS: nil
locale-coding-system: utf-8-unix
default-enable-multibyte-characters: t
Major mode: Group
Minor modes in effect:
shell-dirtrack-mode: t
jabber-activity-mode: t
gnus-topic-mode: t
gnus-undo-mode: t
show-paren-mode: t
recentf-mode: t
mouse-wheel-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
global-auto-composition-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
transient-mark-mode: t
Recent input:
o k SPC ' g n u s - a r t i c l e - m o d e - h o o
k C-S-h v <return> q SPC ' l o n g l i n e - <backspace>
s - m o d e ) C-S-x C-S-s C-S-x C-S-e C-S-x k <return>
C-S-x C-S-o SPC SPC SPC SPC M-x l o n g l i n e s -
- <backspace> m o d e <return> M-x M-p <return> M-<
C-S-x o C-S-p C-S-x o C-S-p <return> C-S-n <return>
C-S-x o C-S-n C-S-n C-S-n C-S-n C-S-n C-S-n C-S-n C-S-n
C-S-n C-S-n C-S-n C-S-n C-S-n C-S-n C-S-n C-S-n C-S-n
C-S-n C-S-n C-S-n C-S-n C-S-n C-S-v C-S-v C-S-v SPC
SPC SPC SPC SPC C-S-x C-S-o C-S-n <return> C-S-n <return>
C-S-n <return> C-S-n <return> C-S-n <return> C-S-n
<return> C-S-n <return> C-S-n <return> C-S-n <return>
C-S-n <return> C-S-n <return> C-S-n C-S-n <return>
C-S-n <return> C-S-n <return> C-S-n <return> q g p
<return> q C-S-n <return> k k k k k k q p n <return>
d q g p <return> q p p <return> M-> C-S-p C-S-p C-S-p
<return> C-S-n <down-mouse-1> <mouse-1> <help-echo>
<down-mouse-1> <mouse-1> SPC C-S-x o C-S-x o M-u C-S-p
<return> q g <down-mouse-1> <mouse-1> <down-mouse-1>
<mouse-1> g p p p p <return> M-> p C-S-x o M-> M-<
C-S-n C-S-n C-S-n C-S-n C-S-n C-S-n C-S-n C-S-n C-S-n
C-S-n C-S-n C-S-n C-S-n C-S-n C-S-n C-S-n C-S-n C-S-n
C-S-n C-S-n C-S-n C-S-n C-S-n C-S-n t t C-S-p C-S-p
C-S-p <return> <help-echo> <down-mouse-1> <mouse-movement>
<help-echo> <mouse-movement> <mouse-movement> <help-echo>
<mouse-movement> <help-echo> <mouse-movement> <mouse-movement>
<help-echo> <mouse-movement> <help-echo> <drag-mouse-1>
<help-echo> <help-echo> <down-mouse-1> <mouse-1> C-S-x
o C-S-x o ! C-S-p C-S-p <return> M-u <help-echo> q
g M-x r e p o r t - e m a c s - b u g <return>
Recent messages:
Generating summary...done
Mark set [3 times]
No more articles [2 times]
Reading active file via nnnil...done
Reading active file via nnml...
nnml: Reading incoming mail from file...
nnml: Reading incoming mail (no new mail)...done
Reading active file via nnml...done
Reading active file from archive via nnfolder...done
Checking new news...done
This bug report was last modified 14 years and 13 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.