[PATCH v2 2/5] emacs: add no-display arg to notmuch-hello-refresh-hook

Tomi Ollila tomi.ollila at iki.fi
Fri Sep 7 00:56:21 PDT 2012


On Sun, Sep 02 2012, Jani Nikula <jani at nikula.org> wrote:

> Add no-display arg to notmuch-hello-refresh-hook to allow each hook to
> decide what is appropriate when no-display is t, i.e. when not
> switching to the notmuch-hello buffer.
>
> This breaks existing hooks people might have, which will now need to
> accept the argument.
>
> Signed-off-by: Jani Nikula <jani at nikula.org>
> ---
>  emacs/notmuch-hello.el |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/emacs/notmuch-hello.el b/emacs/notmuch-hello.el
> index 4dfe5d2..fa14443 100644
> --- a/emacs/notmuch-hello.el
> +++ b/emacs/notmuch-hello.el
> @@ -816,7 +816,7 @@ it (i.e. use `set-buffer' rather than `switch-to-buffer')."
>        (unless (widget-at)
>  	(when notmuch-hello-search-pos
>  	  (goto-char notmuch-hello-search-pos)))))
> -  (run-hooks 'notmuch-hello-refresh-hook)
> +  (run-hook-with-args 'notmuch-hello-refresh-hook no-display)
>    (setq notmuch-hello-first-run nil))

I had already written a bit of reply for this (for +1:ng the change), but
luckily fall into some emacs documentation:

http://sunsite.ualberta.ca/Documentation/Gnu/emacs-lisp-ref-20.5/html_node/elisp_357.html

--8<----8<----8<----8<----8<----8<----8<----8<----8<--

23.6 Hooks
==========

...

Most of the hooks in Emacs are normal hooks. These variables contain lists
of functions to be called with no arguments. When the hook name ends in
`-hook', that tells you it is normal. We try to make all hooks normal, as
much as possible, so that you can use them in a uniform way. 

...

If the hook variable's name does not end with `-hook', that indicates it is
probably an abnormal hook; you should look at its documentation to see how
to use the hook properly. 

--8<----8<----8<----8<----8<----8<----8<----8<----8<--

And, indeed, grepping through emacs 24.2 sources when run-hooks-with-args
is used then the variable symbol doesn't end with -hook, for example:

 (run-hook-with-args 'widget-edit-functions widget))


So, Jani -- probably you can use the no-display from the dynamic scope of
the caller in your hook in .emacs -- not nice but...

... or propose a change to the hook name -- or add another hook...

>  (defun notmuch-folder ()
> -- 
> 1.7.9.5


Tomi


More information about the notmuch mailing list