summaryrefslogtreecommitdiff
path: root/libguile/keywords.h
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2018-06-20 09:25:20 +0200
committerAndy Wingo <wingo@pobox.com>2018-06-20 09:25:20 +0200
commitaf32bf8ff10452ccb8a5c58d266880c4d3200938 (patch)
tree8984236ecf90252ecde5839b6cd8f6ec865e19ef /libguile/keywords.h
parent93dcc557610eeb1deb79da6939d2c77779d7f948 (diff)
downloadguile-af32bf8ff10452ccb8a5c58d266880c4d3200938.tar.gz
Devolve keyword-snarfing macros
* libguile/snarf.h: * libguile/keywords.h (SCM_KEYWORD, SCM_GLOBAL_KEYWORD): Move here.
Diffstat (limited to 'libguile/keywords.h')
-rw-r--r--libguile/keywords.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/libguile/keywords.h b/libguile/keywords.h
index 547984949..5f3390341 100644
--- a/libguile/keywords.h
+++ b/libguile/keywords.h
@@ -26,6 +26,7 @@
#include "libguile/__scm.h"
#include <libguile/error.h>
+#include <libguile/snarf.h>
@@ -42,6 +43,14 @@ SCM_API SCM scm_from_utf8_keyword (const char *name);
#define SCM_VALIDATE_KEYWORD(pos, v) \
SCM_MAKE_VALIDATE_MSG (pos, v, KEYWORDP, "keyword")
+#define SCM_KEYWORD(c_name, scheme_name) \
+SCM_SNARF_HERE(static SCM c_name) \
+SCM_SNARF_INIT(c_name = scm_from_locale_keyword (scheme_name))
+
+#define SCM_GLOBAL_KEYWORD(c_name, scheme_name) \
+SCM_SNARF_HERE(SCM c_name) \
+SCM_SNARF_INIT(c_name = scm_from_locale_keyword (scheme_name))
+
enum scm_keyword_arguments_flags
{
SCM_ALLOW_OTHER_KEYS = (1U << 0),