x); SCM_API SCM scm_string_p (SCM x); SCM_API SCM scm_string (SCM chrs); SCM_API SCM scm_make_string (SCM k, SCM chr); SCM_API SCM scm_string_length (SCM str); SCM_API SCM scm_string_utf8_length (SCM str); SCM_API SCM scm_string_bytes_per_char (SCM str); SCM_API SCM scm_string_ref (SCM str, SCM k); SCM_API SCM scm_string_set_x (SCM str, SCM k, SCM chr); SCM_API SCM scm_substring (SCM str, SCM start, SCM end); SCM_API SCM scm_substring_read_only (SCM str, SCM start, SCM end); SCM_API SCM scm_substring_shared (SCM str, SCM start, SCM end); SCM_API SCM scm_substring_copy (SCM str, SCM start, SCM end); SCM_API SCM scm_string_append (SCM args); SCM_API SCM scm_from_stringn (const char *str, size_t len, const char *encoding, scm_t_string_failed_conversion_handler handler); SCM_API SCM scm_c_make_string (size_t len, SCM chr); SCM_API size_t scm_c_string_length (SCM str); SCM_API size_t scm_c_string_utf8_length (SCM str); SCM_API size_t scm_c_symbol_length (SCM sym); SCM_API SCM scm_c_string_ref (SCM str, size_t pos); SCM_API void scm_c_string_set_x (SCM str, size_t pos, SCM chr); SCM_API SCM scm_c_substring (SCM str, size_t start, size_t end); SCM_API SCM scm_c_substring_read_only (SCM str, size_t start, size_t end); SCM_API SCM scm_c_substring_shared (SCM str, size_t start, size_t end); SCM_API SCM scm_c_substring_copy (SCM str, size_t start, size_t end); /* Use locale encoding for user input, user output, or interacting with the C library. Use latin1 for ASCII, and for literals in source code. Use utf8 for interaction with modern libraries which deal in UTF-8. Otherwise use scm_to_stringn or scm_from_stringn with a specific encoding. */ SCM_API SCM scm_from_locale_string (const char *str); SCM_API SCM scm_from_locale_stringn (const char *str, size_t len); SCM_API SCM scm_take_locale_string (char *str); SCM_API SCM scm_take_locale_stringn (char *str, size_t len); SCM_API char *scm_to_locale_string (SCM str); SCM_API char *scm_to_locale_stringn (SCM str, size_t *lenp); SCM_API SCM scm_from_latin1_string (const char *str); SCM_API SCM scm_from_latin1_stringn (const char *str, size_t len); SCM_API char *scm_to_latin1_string (SCM str); SCM_API char *scm_to_latin1_stringn (SCM str, size_t *lenp); SCM_API char *scm_to_utf8_string (SCM str); SCM_API char *scm_to_utf8_stringn (SCM str, size_t *lenp); SCM_API SCM scm_from_utf8_string (const char *str); SCM_API SCM scm_from_utf8_stringn (const char *str, size_t len); SCM_API scm_t_wchar *scm_to_utf32_string (SCM str); SCM_API scm_t_wchar *scm_to_utf32_stringn (SCM str, size_t *lenp); SCM_API SCM scm_from_utf32_string (const scm_t_wchar *str); SCM_API SCM scm_from_utf32_stringn (const scm_t_wchar *str, size_t len); SCM_API char *scm_to_port_string (SCM str, SCM port); SCM_API char *scm_to_port_stringn (SCM str, size_t *lenp, SCM port); SCM_API SCM scm_from_port_string (const char *str, SCM port); SCM_API SCM scm_from_port_stringn (const char *str, size_t len, SCM port); SCM_API char *scm_to_stringn (SCM str, size_t *lenp, const char *encoding, scm_t_string_failed_conversion_handler handler); SCM_API size_t scm_to_locale_stringbuf (SCM str, char *buf, size_t max_len); SCM_API SCM scm_string_normalize_nfd (SCM str); SCM_API SCM scm_string_normalize_nfkd (SCM str); SCM_API SCM scm_string_normalize_nfc (SCM str); SCM_API SCM scm_string_normalize_nfkc (SCM str); SCM_API SCM scm_makfromstrs (int argc, char **argv);