to put a new function on such a hook is to call @code{add-hook}.
@xref{Hooks}, for more information about using hooks.
-The variables whose names end in @samp{-functions} are usually @dfn{abnormal
-hooks} (some old code may also use the deprecated @samp{-hooks} suffix); their
-values are lists of functions, but these functions are called in a special way
-(they are passed arguments, or their return values are used). The variables
-whose names end in @samp{-function} have single functions as their values.
+The variables whose names end in @samp{-functions} are usually
+@dfn{abnormal hooks} (some old code may also use the deprecated
+@samp{-hooks} suffix). Their values are lists of functions, but these
+functions are called in a special way: they are either passed
+arguments, or their return values are used in some way. The variables
+whose names end in @samp{-function} have single functions as their
+values.
This is not an exhaustive list, it only covers the more general hooks.
For example, every major mode defines a hook named
@cindex abnormal hook
If the hook variable's name does not end with @samp{-hook}, that
-indicates it is probably an @dfn{abnormal hook}. That means the hook
-functions are called with arguments, or their return values are used
-in some way. The hook's documentation says how the functions are
-called. Any functions added to an abnormal hook must follow the
-hook's calling convention. By convention, abnormal hook names end in
-@samp{-functions}.
+indicates it is probably an @dfn{abnormal hook}. That means one of
+two things: either that the hook functions are called with arguments,
+or that their return values are used in some way. The hook's
+documentation says how the functions are called. Any functions added
+to an abnormal hook must follow the hook's calling convention. By
+convention, abnormal hook names end in @samp{-functions}.
@cindex single-function hook
If the name of the variable ends in @samp{-predicate} or