diff --git a/libguile/keywords.c b/libguile/keywords.c index 821624c0d..dce5aeea8 100644 --- a/libguile/keywords.c +++ b/libguile/keywords.c @@ -112,6 +112,18 @@ scm_make_keyword_from_dash_symbol (symbol) return SCM_CDR (vcell); } +SCM +scm_c_make_keyword (char *s) +{ + SCM vcell; + char *buf = scm_must_malloc (strlen (s) + 2, "keyword"); + buf[0] = '-'; + strcpy (buf + 1, s); + vcell = scm_sysintern0 (buf); + scm_must_free (buf); + return scm_make_keyword_from_dash_symbol (SCM_CAR (vcell)); +} + SCM_PROC(s_keyword_p, "keyword?", 1, 0, 0, scm_keyword_p); SCM diff --git a/libguile/keywords.h b/libguile/keywords.h index 48ad42480..6c122b83e 100644 --- a/libguile/keywords.h +++ b/libguile/keywords.h @@ -55,9 +55,10 @@ extern int scm_tc16_keyword; -extern SCM scm_make_keyword_from_dash_symbol SCM_P ((SCM symbol)); -extern SCM scm_keyword_p SCM_P ((SCM obj)); -extern SCM scm_keyword_dash_symbol SCM_P ((SCM keyword)); -extern void scm_init_keywords SCM_P ((void)); +extern SCM scm_make_keyword_from_dash_symbol (SCM symbol); +extern SCM scm_c_make_keyword (char *s); +extern SCM scm_keyword_p (SCM obj); +extern SCM scm_keyword_dash_symbol (SCM keyword); +extern void scm_init_keywords (void); #endif /* KEYWORDSH */