summaryrefslogtreecommitdiff
path: root/libguile/variable.h
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2018-06-20 09:26:26 +0200
committerAndy Wingo <wingo@pobox.com>2018-06-20 09:26:26 +0200
commit5ee73e7defc0ca8dbdc91c37470fcd754a69aa37 (patch)
treebee43f5fe47e8cc62f9bf00935f39b19dde5ddcd /libguile/variable.h
parentaf32bf8ff10452ccb8a5c58d266880c4d3200938 (diff)
downloadguile-5ee73e7defc0ca8dbdc91c37470fcd754a69aa37.tar.gz
Devolve variable snarfers
* libguile/snarf.h: * libguile/variable.h (SCM_VARIABLE, SCM_GLOBAL_VARIABLE): (SCM_VARIABLE_INIT, SCM_GLOBAL_VARIABLE_INIT): Move here.
Diffstat (limited to 'libguile/variable.h')
-rw-r--r--libguile/variable.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/libguile/variable.h b/libguile/variable.h
index aac573b60..fda1fb34e 100644
--- a/libguile/variable.h
+++ b/libguile/variable.h
@@ -27,6 +27,7 @@
#include "libguile/__scm.h"
#include <libguile/error.h>
#include <libguile/gc.h>
+#include <libguile/snarf.h>
@@ -40,6 +41,26 @@
#define SCM_VALIDATE_VARIABLE(pos, var) \
SCM_MAKE_VALIDATE_MSG (pos, var, VARIABLEP, "variable")
+
+
+
+#define SCM_VARIABLE(c_name, scheme_name) \
+SCM_SNARF_HERE(static SCM c_name) \
+SCM_SNARF_INIT(c_name = scm_c_define (scheme_name, SCM_BOOL_F);)
+
+#define SCM_GLOBAL_VARIABLE(c_name, scheme_name) \
+SCM_SNARF_HERE(SCM c_name) \
+SCM_SNARF_INIT(c_name = scm_c_define (scheme_name, SCM_BOOL_F);)
+
+#define SCM_VARIABLE_INIT(c_name, scheme_name, init_val) \
+SCM_SNARF_HERE(static SCM c_name) \
+SCM_SNARF_INIT(c_name = scm_c_define (scheme_name, init_val);)
+
+#define SCM_GLOBAL_VARIABLE_INIT(c_name, scheme_name, init_val) \
+SCM_SNARF_HERE(SCM c_name) \
+SCM_SNARF_INIT(c_name = scm_c_define (scheme_name, init_val);)
+
+
SCM_API SCM scm_make_variable (SCM init);