diff options
author | Ludovic Courtès <ludo@gnu.org> | 2009-03-08 16:36:14 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2009-03-08 16:40:49 +0100 |
commit | 8321ed20f69b4c56cb680563160cd30ecac8f509 (patch) | |
tree | 29c7a0a9988b62826a2fcacd7747b51502d4fc57 /libguile/gsubr.h | |
parent | d18f4d805ed12cc477fa00b3608130785151f3d6 (diff) | |
download | guile-8321ed20f69b4c56cb680563160cd30ecac8f509.tar.gz |
Provide a C vararg interface to gsubr invocation.
* libguile/eval.i.c (CEVAL): Update calls to `scm_i_gsubr_apply ()' with
a fixed number of arguments. Use `scm_i_gsubr_apply_list ()' for
calls with a list of arguments of unknown length.
(SCM_APPLY): Use `scm_i_gsubr_apply_list ()' instead of
`scm_i_gsubr_apply ()'.
* libguile/gsubr.c (gsubr_apply_raw): New.
(scm_i_gsubr_apply): Change to take a C vararg list instead of a
Scheme list. Use `gsubr_apply_raw ()'.
(scm_i_gsubr_apply_list): Use `gsubr_apply_raw ()'.
* libguile/gsubr.h (scm_i_gsubr_apply): Update prototype.
(scm_i_gsubr_apply_list): New declaration.
Diffstat (limited to 'libguile/gsubr.h')
-rw-r--r-- | libguile/gsubr.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libguile/gsubr.h b/libguile/gsubr.h index 42a5c1886..65680a02c 100644 --- a/libguile/gsubr.h +++ b/libguile/gsubr.h @@ -48,7 +48,8 @@ SCM_API SCM scm_c_define_gsubr_with_generic (const char *name, int req, int opt, int rst, SCM (*fcn) (), SCM *gf); -SCM_INTERNAL SCM scm_i_gsubr_apply (SCM proc, SCM args); +SCM_INTERNAL SCM scm_i_gsubr_apply (SCM proc, SCM arg, ...); +SCM_INTERNAL SCM scm_i_gsubr_apply_list (SCM proc, SCM args); SCM_INTERNAL void scm_init_gsubr (void); #endif /* SCM_GSUBR_H */ |