From: Richard Stallman Date: Thu, 6 Feb 2020 23:28:49 +0000 (-0500) Subject: Lispref: Explain avoiding lambdas on hooks. X-Git-Tag: emacs-28.0.90~7909 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=53f0de5d7719b43f184ce1a910f14882aedc50bc;p=emacs.git Lispref: Explain avoiding lambdas on hooks. (lispref/modes.texi): Explain avoiding lambdas on hooks. --- diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi index 7354eb1b9f8..b52871ef70b 100644 --- a/doc/lispref/modes.texi +++ b/doc/lispref/modes.texi @@ -135,13 +135,26 @@ non-@code{nil} value, it returns that value; otherwise it returns @node Setting Hooks @subsection Setting Hooks - Here's an example that uses a mode hook to turn on Auto Fill mode when -in Lisp Interaction mode: + Here's an example that adds a funtion to a mode hook to turn +on Auto Fill mode when in Lisp Interaction mode: @example (add-hook 'lisp-interaction-mode-hook 'auto-fill-mode) @end example + The value of a hook variable should be a list of functions. You can +manipulate that list using the normal Lisp facilities, but the modular +way is to use the functions @code{add-hook} and @code{remove-hook}, +defined below. They take care to handle some unusual situations and +avoid problems. + + It works to put a @code{lambda}-expression function on a hook, but +we recommend avoiding this because it can lead to confusion. If you +add the same @code{lambda}-expression a second time but write it +slightly differently, you will get two equivalent but distinct +functions on the hook. If you then remove one of them, the other will +still be on it. + @defun add-hook hook function &optional depth local This function is the handy way to add function @var{function} to hook variable @var{hook}. You can use it for abnormal hooks as well as for