/** * Convert a Scheme_Object to a string. Returns NULL if it fails. */ char * tostring (Scheme_Object *obj) { if (SCHEME_BYTE_STRINGP (obj)) return SCHEME_BYTE_STR_VAL (obj); else if (SCHEME_CHAR_STRINGP (obj)) return SCHEME_BYTE_STR_VAL (scheme_char_string_to_byte_string (obj)); else return NULL; } // tostring
/** * Convert a Scheme_Object to a string. Returns NULL if it fails. */ char * tostring (Scheme_Object *obj) { if (SCHEME_BYTE_STRINGP (obj)) return SCHEME_BYTE_STR_VAL (obj); else if (SCHEME_CHAR_STRINGP (obj)) // (scheme_char_string_to_byte_string) to be able to convert it to byte string return SCHEME_BYTE_STR_VAL (scheme_char_string_to_byte_string (obj)); else return NULL; } // tostring
static Scheme_Object *catch_eval_error(int argc, Scheme_Object **argv) { Scheme_Object *bs; if (!SCHEME_CHAR_STRINGP(argv[0])) scheme_wrong_type("eval-string/catch-error", "string", 0, argc, argv); bs = scheme_char_string_to_byte_string(argv[0]); return eval_string_or_get_exn_message(SCHEME_BYTE_STR_VAL(bs)); }