diff options
author | Dirk Herrmann <dirk@dirk-herrmanns-seiten.de> | 2000-05-08 12:29:12 +0000 |
---|---|---|
committer | Dirk Herrmann <dirk@dirk-herrmanns-seiten.de> | 2000-05-08 12:29:12 +0000 |
commit | 1a45015332da33e4974bd18ea77cc4c1c8bdb12d (patch) | |
tree | c157891d9a389bb1e1f4caf3ab034017344adf42 /libguile/feature.c | |
parent | 665aeda3e51dd101f5f1e22c87218872c5b0a052 (diff) | |
download | guile-1a45015332da33e4974bd18ea77cc4c1c8bdb12d.tar.gz |
Avoid pointer trickery with SCM values.
Diffstat (limited to 'libguile/feature.c')
-rw-r--r-- | libguile/feature.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/libguile/feature.c b/libguile/feature.c index e05a10115..0589521e5 100644 --- a/libguile/feature.c +++ b/libguile/feature.c @@ -45,30 +45,30 @@ #include <stdio.h> -#include "libguile/_scm.h" +#ifdef HAVE_STRING_H +#include <string.h> +#endif +#include "libguile/_scm.h" #include "libguile/root.h" -#include "libguile/smob.h" #include "libguile/strings.h" - #include "libguile/validate.h" + #include "libguile/feature.h" -#ifdef HAVE_STRING_H -#include <string.h> -#endif -static SCM *scm_loc_features; +static SCM features; + void scm_add_feature (const char *str) { - *scm_loc_features = scm_cons (SCM_CAR (scm_intern (str, strlen (str))), - *scm_loc_features); + SCM old = SCM_CDR (features); + SCM new = scm_cons (SCM_CAR (scm_intern (str, strlen (str))), old); + SCM_SETCDR (features, new); } - SCM_DEFINE (scm_program_arguments, "program-arguments", 0, 0, 0, @@ -100,7 +100,7 @@ scm_set_program_arguments (int argc, char **argv, char *first) void scm_init_feature() { - scm_loc_features = SCM_CDRLOC (scm_sysintern ("*features*", SCM_EOL)); + features = scm_sysintern ("*features*", SCM_EOL); #ifdef SCM_RECKLESS scm_add_feature("reckless"); #endif |