HCoop
/
bpt
/
guile.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote-tracking branch 'origin/stable-2.0'
[bpt/guile.git]
/
libguile
/
hooks.c
diff --git
a/libguile/hooks.c
b/libguile/hooks.c
index
d7bf018
..
782636e
100644
(file)
--- a/
libguile/hooks.c
+++ b/
libguile/hooks.c
@@
-1,4
+1,4
@@
-/* Copyright (C) 1995,1996,1998,1999,2000,2001, 2003, 2006, 2008, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1998,1999,2000,2001, 2003, 2006, 2008, 2009
, 2011
Free Software Foundation, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
@@
-134,22
+134,22
@@
static int
hook_print (SCM hook, SCM port, scm_print_state *pstate)
{
SCM ls, name;
hook_print (SCM hook, SCM port, scm_print_state *pstate)
{
SCM ls, name;
- scm_puts ("#<hook ", port);
+ scm_puts
_unlocked
("#<hook ", port);
scm_intprint (SCM_HOOK_ARITY (hook), 10, port);
scm_intprint (SCM_HOOK_ARITY (hook), 10, port);
- scm_putc (' ', port);
+ scm_putc
_unlocked
(' ', port);
scm_uintprint (SCM_UNPACK (hook), 16, port);
ls = SCM_HOOK_PROCEDURES (hook);
scm_uintprint (SCM_UNPACK (hook), 16, port);
ls = SCM_HOOK_PROCEDURES (hook);
- while (
SCM_NIMP
(ls))
+ while (
scm_is_pair
(ls))
{
{
- scm_putc (' ', port);
+ scm_putc
_unlocked
(' ', port);
name = scm_procedure_name (SCM_CAR (ls));
if (scm_is_true (name))
scm_iprin1 (name, port, pstate);
else
name = scm_procedure_name (SCM_CAR (ls));
if (scm_is_true (name))
scm_iprin1 (name, port, pstate);
else
- scm_putc ('?', port);
+ scm_putc
_unlocked
('?', port);
ls = SCM_CDR (ls);
}
ls = SCM_CDR (ls);
}
- scm_putc ('>', port);
+ scm_putc
_unlocked
('>', port);
return 1;
}
return 1;
}
@@
-269,13
+269,24
@@
void
scm_c_run_hook (SCM hook, SCM args)
{
SCM procs = SCM_HOOK_PROCEDURES (hook);
scm_c_run_hook (SCM hook, SCM args)
{
SCM procs = SCM_HOOK_PROCEDURES (hook);
- while (
SCM_NIMP
(procs))
+ while (
scm_is_pair
(procs))
{
scm_apply_0 (SCM_CAR (procs), args);
procs = SCM_CDR (procs);
}
}
{
scm_apply_0 (SCM_CAR (procs), args);
procs = SCM_CDR (procs);
}
}
+void
+scm_c_run_hookn (SCM hook, SCM *argv, size_t nargs)
+{
+ SCM procs = SCM_HOOK_PROCEDURES (hook);
+ while (scm_is_pair (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),
SCM_DEFINE (scm_hook_to_list, "hook->list", 1, 0, 0,
(SCM hook),