diff options
author | Andy Wingo <wingo@pobox.com> | 2009-12-21 21:06:27 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2009-12-21 21:06:27 +0100 |
commit | 86fd6dff2a77150148ed7b3d9152e0a431070666 (patch) | |
tree | 566f285b090bfd155894cbf0b8e5e7dd7ba709b6 /libguile/hooks.c | |
parent | 700908288cdafd7d68dc2861e2348f38aeb38782 (diff) | |
download | guile-86fd6dff2a77150148ed7b3d9152e0a431070666.tar.gz |
add scm_call_n, scm_c_run_hookn
* libguile/eval.h:
* libguile/eval.c (scm_call_n): New function, applies a function to an
array of args.
* libguile/hooks.h:
* libguile/hooks.c (scm_c_run_hookn): New function, runs a hook with an
array of args.
Diffstat (limited to 'libguile/hooks.c')
-rw-r--r-- | libguile/hooks.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/libguile/hooks.c b/libguile/hooks.c index d7bf018be..abba606f7 100644 --- a/libguile/hooks.c +++ b/libguile/hooks.c @@ -276,6 +276,17 @@ scm_c_run_hook (SCM hook, SCM args) } } +void +scm_c_run_hookn (SCM hook, SCM *argv, size_t nargs) +{ + SCM procs = SCM_HOOK_PROCEDURES (hook); + while (SCM_NIMP (procs)) + { + scm_call_n (SCM_CAR (procs), argv, nargs); + procs = SCM_CDR (procs); + } +} + SCM_DEFINE (scm_hook_to_list, "hook->list", 1, 0, 0, (SCM hook), |