summaryrefslogtreecommitdiff
path: root/libguile/feature.c
diff options
context:
space:
mode:
authorDirk Herrmann <dirk@dirk-herrmanns-seiten.de>2000-05-08 12:29:12 +0000
committerDirk Herrmann <dirk@dirk-herrmanns-seiten.de>2000-05-08 12:29:12 +0000
commit1a45015332da33e4974bd18ea77cc4c1c8bdb12d (patch)
treec157891d9a389bb1e1f4caf3ab034017344adf42 /libguile/feature.c
parent665aeda3e51dd101f5f1e22c87218872c5b0a052 (diff)
downloadguile-1a45015332da33e4974bd18ea77cc4c1c8bdb12d.tar.gz
Avoid pointer trickery with SCM values.
Diffstat (limited to 'libguile/feature.c')
-rw-r--r--libguile/feature.c22
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