diff options
author | Mikael Djurfeldt <djurfeldt@nada.kth.se> | 1999-09-09 20:16:59 +0000 |
---|---|---|
committer | Mikael Djurfeldt <djurfeldt@nada.kth.se> | 1999-09-09 20:16:59 +0000 |
commit | 264251294d44eea18f9d231805e3ab17a7d212cc (patch) | |
tree | 1371d9f5346c3234abec9d7413bf7e2e85860044 /libguile/feature.h | |
parent | abdff5bd42b1d081db232041baf284f0584a2192 (diff) | |
download | guile-264251294d44eea18f9d231805e3ab17a7d212cc.tar.gz |
* feature.c, feature.h: (scm_hook_p, scm_hook_empty_p): New
primitives. (Thanks to Greg Badros);
(scm_hook_to_list): New primitive; Hooks are now smobs.
Diffstat (limited to 'libguile/feature.h')
-rw-r--r-- | libguile/feature.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libguile/feature.h b/libguile/feature.h index 5e33470c3..f8e3e13e7 100644 --- a/libguile/feature.h +++ b/libguile/feature.h @@ -46,16 +46,26 @@ #include "libguile/__scm.h" +#define SCM_HOOKP(x) (SCM_TYP16 (x) == scm_tc16_hook) +#define SCM_HOOK_ARITY(hook) (SCM_CAR (hook) >> 16) +#define SCM_HOOK_PROCEDURES(hook) SCM_CDR (hook) +#define SCM_SET_HOOK_PROCEDURES(hook, procs) SCM_SETCDR (hook, procs) + +extern long scm_tc16_hook; + extern void scm_add_feature (const char* str); extern SCM scm_program_arguments (void); extern void scm_set_program_arguments (int argc, char **argv, char *first); extern SCM scm_make_hook (SCM n_args); extern SCM scm_make_named_hook (char* name, int n_args); +extern SCM scm_hook_p (SCM x); +extern SCM scm_hook_empty_p (SCM hook); extern SCM scm_add_hook_x (SCM hook, SCM thunk, SCM appendp); extern SCM scm_remove_hook_x (SCM hook, SCM thunk); extern SCM scm_reset_hook_x (SCM hook); extern SCM scm_run_hook (SCM hook, SCM args); extern void scm_c_run_hook (SCM hook, SCM args); +extern SCM scm_hook_to_list (SCM hook); extern void scm_init_feature (void); #endif /* FEATUREH */ |