diff options
author | Mark H Weaver <mhw@netris.org> | 2013-04-06 13:36:24 -0400 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2013-04-06 18:09:45 -0400 |
commit | a16d4e82e949954805bf2cd42cfbb519fcf4012d (patch) | |
tree | 101e32a296bb1228caeaf57feb54e869c26115a9 /libguile/keywords.h | |
parent | c608e1aafae347dc52cda70aa9379e9b6803b5e6 (diff) | |
download | guile-a16d4e82e949954805bf2cd42cfbb519fcf4012d.tar.gz |
Implement 'scm_c_bind_keyword_arguments'.
* libguile/keywords.c (scm_keyword_argument_error): New variable.
(scm_c_bind_keyword_arguments): New API function.
* libguile/keywords.h (enum scm_keyword_arguments_flags): New enum.
(scm_t_keyword_arguments_flags): New typedef.
(scm_c_bind_keyword_arguments): New prototype.
* doc/ref/api-data.texi (Coding With Keywords, Keyword Procedures): Add
documentation.
* test-suite/standalone/test-scm-c-bind-keyword-arguments.c: New file.
* test-suite/standalone/Makefile.am: Add
test-scm-c-bind-keyword-arguments test.
Diffstat (limited to 'libguile/keywords.h')
-rw-r--r-- | libguile/keywords.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/libguile/keywords.h b/libguile/keywords.h index c9e6af14b..3cdb0ecdd 100644 --- a/libguile/keywords.h +++ b/libguile/keywords.h @@ -41,6 +41,18 @@ SCM_API SCM scm_from_locale_keywordn (const char *name, size_t len); SCM_API SCM scm_from_latin1_keyword (const char *name); SCM_API SCM scm_from_utf8_keyword (const char *name); +enum scm_keyword_arguments_flags +{ + SCM_ALLOW_OTHER_KEYS = (1U << 0), + SCM_ALLOW_NON_KEYWORD_ARGUMENTS = (1U << 1) +}; + +typedef enum scm_keyword_arguments_flags scm_t_keyword_arguments_flags; + +SCM_API void +scm_c_bind_keyword_arguments (const char *subr, SCM rest, + scm_t_keyword_arguments_flags flags, ...); + SCM_INTERNAL void scm_init_keywords (void); #endif /* SCM_KEYWORDS_H */ |