bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#5026: marked as done (23.1; add-hook buffer local vs single func)


From: Emacs bug Tracking System
Subject: bug#5026: marked as done (23.1; add-hook buffer local vs single func)
Date: Fri, 01 Jan 2010 17:17:01 +0000

Your message dated Fri, 01 Jan 2010 12:16:30 -0500
with message-id <87ljghg2z5.fsf@stupidchicken.com>
and subject line Re: bug#5026: 23.1; add-hook buffer local vs single func
has caused the Emacs bug report #5026,
regarding 23.1; add-hook buffer local vs single func
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact bug-gnu-emacs@gnu.org
immediately.)


-- 
5026: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=5026
Emacs Bug Tracking System
Contact bug-gnu-emacs@gnu.org with problems
--- Begin Message --- Subject: 23.1; add-hook buffer local vs single func Date: Tue, 24 Nov 2009 08:04:41 +1100 User-agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.1 (gnu/linux)
Evaluating

    (progn
      (defvar foo nil)

      (defun func1 ()
        (error "this is func 1"))
      (defun func2 ()
        (message "this if func 2"))


      (setq foo 'func1)
      (add-hook 'foo 'func2
                nil ;; prepend
                t)  ;; buffer-local

      (run-hooks 'foo))

returns nil, where I expected the run-hooks to run both func2 and func1,
raising the error in func1.

The elisp manual under "Setting Hooks" says

    `add-hook' can handle the cases where ... its value is
    a single function;

but that doesn't seem to be so when extending a single function to a
buffer-local value.

I suspect it's run-hooks which should be blamed rather than add-hook.
Should run-hooks allow a single-function global value when it follows a
`t' from a local value?

I expect this arises only rarely.  But if it does then it's a pretty
subtle way to miss out on a function you thought you had in a hook.




In GNU Emacs 23.1.1 (i486-pc-linux-gnu, GTK+ Version 2.16.5)
 of 2009-09-14 on raven, modified by Debian
configured using `configure  '--build=i486-linux-gnu' '--host=i486-linux-gnu' 
'--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' 
'--localstatedir=/var/lib' '--infodir=/usr/share/info' 
'--mandir=/usr/share/man' '--with-pop=yes' 
'--enable-locallisppath=/etc/emacs23:/etc/emacs:/usr/local/share/emacs/23.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.1/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/23.1/leim'
 '--with-x=yes' '--with-x-toolkit=gtk' '--with-toolkit-scroll-bars' 
'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -g 
-O2' 'LDFLAGS=-g' 'CPPFLAGS=''

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_AU
  value of $XMODIFIERS: nil
  locale-coding-system: iso-latin-1-unix
  default-enable-multibyte-characters: t



--- End Message ---
--- Begin Message --- Subject: Re: bug#5026: 23.1; add-hook buffer local vs single func Date: Fri, 01 Jan 2010 12:16:30 -0500
> > I suspect it's run-hooks which should be blamed rather than add-hook.
> > Should run-hooks allow a single-function global value when it follows a
> > `t' from a local value?
>
> Actually, I think that run-hooks, add-hook and friends should throw at
> least warnings when faced with this kind of obsolete "single
> function" use.

Still, as long as we're still supporting the obsolete format, it's easy
enough to fix run-hooks to recognize it; I've checked in such a fix.


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]