This is insufficient. There are the "to" functions and the string extraction thingys that must be done. But I really don't like that "scm_i_make_string()" call.
SCM scm_from_zbyte_string (const char *str) { return scm_from_zbyte_stringn (str, -1); } SCM scm_from_zbyte_stringn (const char *str, size_t len) { char *bf; SCM res; if (len == (size_t)-1) len = strlen (str); res = scm_i_make_string (len, &bf, 0); memcpy (bf, str, len); return res; }