mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
* 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.
This commit is contained in:
parent
abdff5bd42
commit
264251294d
2 changed files with 86 additions and 39 deletions
|
@ -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 */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue