mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-29 08:20:20 +02:00
* Make the creation of bindings more straightforward.
This commit is contained in:
parent
ba3932579c
commit
a3fc3be99d
4 changed files with 14 additions and 10 deletions
|
@ -1,3 +1,11 @@
|
|||
2000-12-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
|
||||
|
||||
* hooks.c (scm_create_hook), script.c
|
||||
(scm_compile_shell_switches), snarf.h (SCM_VCELL,
|
||||
SCM_GLOBAL_VCELL, SCM_VCELL_INIT, SCM_GLOBAL_VCELL_INIT): Create
|
||||
a binding in one go (instead of first creating a vcell and then
|
||||
setting its cdr).
|
||||
|
||||
2000-12-12 Dirk Herrmann <D.Herrmann@tu-bs.de>
|
||||
|
||||
* hash.[ch] (scm_string_hash), symbols.[ch] (scm_string_hash):
|
||||
|
|
|
@ -200,9 +200,8 @@ SCM_SYMBOL (symbol_name, "name");
|
|||
SCM
|
||||
scm_create_hook (const char* name, int n_args)
|
||||
{
|
||||
SCM vcell = scm_sysintern0 (name);
|
||||
SCM hook = make_hook (SCM_MAKINUM (n_args), "scm_create_hook");
|
||||
SCM_SETCDR (vcell, hook);
|
||||
scm_sysintern (name, hook);
|
||||
scm_set_object_property_x (hook, symbol_name, scm_makfrom0str (name));
|
||||
scm_protect_object (hook);
|
||||
return hook;
|
||||
|
|
|
@ -578,10 +578,7 @@ scm_compile_shell_switches (int argc, char **argv)
|
|||
scm_set_program_arguments (argc ? argc - i : 0, argv + i, argv0);
|
||||
|
||||
/* If the --emacs switch was set, now is when we process it. */
|
||||
{
|
||||
SCM vcell = scm_sysintern0_no_module_lookup ("use-emacs-interface");
|
||||
SCM_SETCDR (vcell, SCM_BOOL(use_emacs_interface));
|
||||
}
|
||||
scm_sysintern ("use-emacs-interface", SCM_BOOL (use_emacs_interface));
|
||||
|
||||
/* Handle the `-e' switch, if it was specified. */
|
||||
if (!SCM_NULLP (entry_point))
|
||||
|
|
|
@ -169,19 +169,19 @@ SCM_SNARF_INIT(c_name = scm_permanent_object (scm_c_make_keyword (scheme_name)))
|
|||
|
||||
#define SCM_VCELL(c_name, scheme_name) \
|
||||
SCM_SNARF_HERE(static SCM c_name) \
|
||||
SCM_SNARF_INIT(c_name = scm_permanent_object (scm_intern0 (scheme_name)); SCM_SETCDR (c_name, SCM_BOOL_F))
|
||||
SCM_SNARF_INIT(c_name = scm_permanent_object (scm_sysintern (scheme_name, SCM_BOOL_F));)
|
||||
|
||||
#define SCM_GLOBAL_VCELL(c_name, scheme_name) \
|
||||
SCM_SNARF_HERE(SCM c_name) \
|
||||
SCM_SNARF_INIT(c_name = scm_permanent_object (scm_intern0 (scheme_name)); SCM_SETCDR (c_name, SCM_BOOL_F))
|
||||
SCM_SNARF_INIT(c_name = scm_permanent_object (scm_sysintern (scheme_name, SCM_BOOL_F));)
|
||||
|
||||
#define SCM_VCELL_INIT(c_name, scheme_name, init_val) \
|
||||
SCM_SNARF_HERE(static SCM c_name) \
|
||||
SCM_SNARF_INIT(c_name = scm_permanent_object (scm_intern0 (scheme_name)); SCM_SETCDR (c_name, init_val))
|
||||
SCM_SNARF_INIT(c_name = scm_permanent_object (scm_sysintern (scheme_name, init_val));)
|
||||
|
||||
#define SCM_GLOBAL_VCELL_INIT(c_name, scheme_name, init_val) \
|
||||
SCM_SNARF_HERE(SCM c_name) \
|
||||
SCM_SNARF_INIT(c_name = scm_permanent_object (scm_intern0 (scheme_name)); SCM_SETCDR (c_name, init_val))
|
||||
SCM_SNARF_INIT(c_name = scm_permanent_object (scm_sysintern (scheme_name, init_val));)
|
||||
|
||||
#define SCM_CONST_LONG(c_name, scheme_name,value) \
|
||||
SCM_VCELL_INIT(c_name, scheme_name, scm_long2num(value))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue