Every major mode function is supposed to run a normal hook called the
@dfn{mode hook} as the last step of initialization. This makes it easy
for a user to customize the behavior of the mode, by overriding the
-buffer-local variable assignments already made by the mode. But hooks
-are used in other contexts too. For example, the hook
-@code{suspend-hook} runs just before Emacs suspends itself
-(@pxref{Suspending Emacs}).
+buffer-local variable assignments already made by the mode. Most
+minor modes also run a mode hook at their end. But hooks are used in
+other contexts too. For example, the hook @code{suspend-hook} runs
+just before Emacs suspends itself (@pxref{Suspending Emacs}).
The recommended way to add a hook function to a normal hook is by
calling @code{add-hook} (see below). The hook functions may be any of
argument @var{append} is non-@code{nil}, the new hook function goes at
the end of the hook list and will be executed last.
+@code{add-hook} can handle the cases where @var{hook} is void or its
+value is a single function; it sets or changes the value to a list of
+functions.
+
If @var{local} is non-@code{nil}, that says to add @var{function} to
the buffer-local hook list instead of to the global hook list. If
needed, this makes the hook buffer-local and adds @code{t} to the