1
Fork 0
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:
Mikael Djurfeldt 1997-02-26 12:08:26 +00:00
parent afa64ca818
commit 1dd28b3d65
3 changed files with 25 additions and 0 deletions

View file

@ -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

View file

@ -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

View file

@ -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));