1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-28 16:00:22 +02:00

Improvements to hook docs.

This commit is contained in:
Neil Jerram 2002-09-19 20:39:41 +00:00
parent 4ad0814a57
commit c15030bebf
2 changed files with 30 additions and 0 deletions

View file

@ -1,3 +1,8 @@
2002-09-19 Neil Jerram <neil@ossau.uklinux.net>
* scheme-utility.texi (Hook Reference): Improvements to hook docs.
Thanks to Thien-Thi Nguyen for the patches.
2002-09-16 Marius Vollmer <mvo@zagadka.ping.de>
* scheme-data.texi (Symbol Props): It's "set-symbol-property!",

View file

@ -490,6 +490,10 @@ The ordering of the list of procedures returned by @code{hook->list}
matches the order in which those procedures would be called if the hook
was run using @code{run-hook}.
Note that the C functions in the following entries are for handling
@dfn{Scheme-level} hooks in C. There are also @dfn{C-level} hooks which
have their own interface (@pxref{C Hooks}).
@deffn {Scheme Procedure} make-hook [n_args]
@deffnx {C Function} scm_make_hook (n_args)
Create a hook for storing procedure of arity @var{n_args}.
@ -551,6 +555,27 @@ that @var{hook} is actually a hook object and that @var{args} is a
well-formed list matching the arity of the hook.
@end deftypefn
For C code, @code{SCM_HOOKP} is a faster alternative to
@code{scm_hook_p}:
@deftypefn {C Macro} int SCM_HOOKP (x)
Return 1 if @var{x} is a Scheme-level hook, 0 otherwise.
@end deftypefn
@subsection Handling Scheme-level hooks from C code
Here is an example of how to handle Scheme-level hooks from C code using
the above functions.
@example
if (SCM_NFALSEP (scm_hook_p (obj)))
/* handle Scheme-level hook using C functions */
scm_reset_hook_x (obj);
else
/* do something else (obj is not a hook) */
@end example
@node C Hooks
@subsection Hooks For C Code.