summaryrefslogtreecommitdiff
path: root/libguile/keywords.h
diff options
context:
space:
mode:
authorRob Browning <rlb@defaultvalue.org>2020-02-16 12:12:08 -0600
committerRob Browning <rlb@defaultvalue.org>2020-02-21 01:36:14 -0600
commit8b3cad618314f02ad3921fa104f17ca0f721dfcb (patch)
treef4c4180858f0650b267badb8d81c69f2cf6418da /libguile/keywords.h
parentcc30168878972652ddde4489351b76dc53f20142 (diff)
downloadguile-8b3cad618314f02ad3921fa104f17ca0f721dfcb.tar.gz
Implement hashing for keywords, i.e. (hash #:x ...)
Add keyword handling to (hash ...). Previously it would just return the same value for all keywords. * libguile/hash.c (scm_raw_ihash): Add scm_tc7_keyword case. * libguile/keywords.h (SCM_I_KEYWORD_HASH): New macro.
Diffstat (limited to 'libguile/keywords.h')
-rw-r--r--libguile/keywords.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/libguile/keywords.h b/libguile/keywords.h
index c8f480869..cb8598d8b 100644
--- a/libguile/keywords.h
+++ b/libguile/keywords.h
@@ -60,6 +60,8 @@ SCM_API void
scm_c_bind_keyword_arguments (const char *subr, SCM rest,
scm_t_keyword_arguments_flags flags, ...);
+#define SCM_I_KEYWORD_HASH(x) scm_i_symbol_hash (SCM_CELL_OBJECT_1 (x))
+
SCM_INTERNAL void scm_init_keywords (void);
#endif /* SCM_KEYWORDS_H */