# SRFI 238 - portable string-based implementation This is an implementation SRFI 238 based around the following C interface. ``` char *codeset_list(void); char *codeset_numbers(const char *codeset); char *codeset_symbols(const char *codeset); char *codeset_messages(const char *codeset); ``` Each function returns a newline-delimited C string. The idea is to make the interface so simple that it can be wrapped easily using the FFI of any Scheme implementation that has one. (Non-Scheme languages like Common Lisp or ML could make use of the same C code.) The downside is that memory usage is not optimal. All strings are retrieved from C at once, and half of the string handling is done in Scheme.