mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-10 05:50:26 +02:00
* symbols.c, symbols.h (scm_symbol_value0): New function. Can be
used from C to easily lookup the value of a symbol in the current module.
This commit is contained in:
parent
afa64ca818
commit
1dd28b3d65
3 changed files with 25 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
Wed Feb 26 12:53:58 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||||
|
||||
* symbols.c, symbols.h (scm_symbol_value0): New function. Can be
|
||||
used from C to easily lookup the value of a symbol in the current
|
||||
module.
|
||||
|
||||
Tue Feb 25 00:14:10 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
|
||||
|
||||
* unif.c (scm_init_unif): Added #include "unif.x". (There are two
|
||||
|
|
|
@ -422,6 +422,24 @@ scm_sysintern0 (name)
|
|||
return scm_sysintern0_no_module_lookup (name);
|
||||
}
|
||||
|
||||
/* Lookup the value of the symbol named by the nul-terminated string
|
||||
NAME in the current module. */
|
||||
SCM
|
||||
scm_symbol_value0 (name)
|
||||
char *name;
|
||||
{
|
||||
/* This looks silly - we look up the symbol twice. But it is in
|
||||
fact necessary given the current module system because the module
|
||||
lookup closures are written in scheme which needs real symbols. */
|
||||
SCM symbol = scm_intern_obarray_soft (name, strlen (name), scm_symhash, 0);
|
||||
SCM vcell = scm_sym2vcell (SCM_CAR (symbol),
|
||||
SCM_CDR (scm_top_level_lookup_closure_var),
|
||||
SCM_BOOL_F);
|
||||
if (SCM_FALSEP (vcell))
|
||||
return SCM_UNDEFINED;
|
||||
return SCM_CDR (vcell);
|
||||
}
|
||||
|
||||
SCM_PROC(s_symbol_p, "symbol?", 1, 0, 0, scm_symbol_p);
|
||||
|
||||
SCM
|
||||
|
|
|
@ -113,6 +113,7 @@ extern SCM scm_intern SCM_P ((char *name, scm_sizet len));
|
|||
extern SCM scm_intern0 SCM_P ((char * name));
|
||||
extern SCM scm_sysintern SCM_P ((char *name, SCM val));
|
||||
extern SCM scm_sysintern0 SCM_P ((char *name));
|
||||
extern SCM scm_symbol_value0 SCM_P ((char *name));
|
||||
extern SCM scm_symbol_p SCM_P ((SCM x));
|
||||
extern SCM scm_symbol_to_string SCM_P ((SCM s));
|
||||
extern SCM scm_string_to_symbol SCM_P ((SCM s));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue