diff --git a/Lib/mzscheme/mzrun.swg b/Lib/mzscheme/mzrun.swg index 6c00298d7..63b424bc1 100644 --- a/Lib/mzscheme/mzrun.swg +++ b/Lib/mzscheme/mzrun.swg @@ -61,6 +61,9 @@ extern "C" { #define scheme_make_sized_string(s,l) scheme_make_sized_utf8_string(s,l) #define scheme_make_sized_offset_string(s,d,l) \ scheme_make_sized_offset_utf8_string(s,d,l) +#define SCHEME_MAKE_STRING(s) scheme_make_utf8_string(s) +#else +#define SCHEME_MAKE_STRING(s) scheme_make_string_without_copying(s) #endif /* ----------------------------------------------------------------------- * End of mzscheme 30X support code diff --git a/Lib/mzscheme/typemaps.i b/Lib/mzscheme/typemaps.i index d270a8373..9df763370 100644 --- a/Lib/mzscheme/typemaps.i +++ b/Lib/mzscheme/typemaps.i @@ -214,10 +214,11 @@ SIMPLE_MAP(float, SCHEME_REALP, scheme_real_to_double, scheme_make_double, real); SIMPLE_MAP(double, SCHEME_REALP, scheme_real_to_double, scheme_make_double, real); + SIMPLE_MAP(char *, SCHEME_STRINGP, SCHEME_STR_VAL, - scheme_make_string_without_copying, string); + SCHEME_MAKE_STRING, string); SIMPLE_MAP(const char *, SCHEME_STRINGP, SCHEME_STR_VAL, - scheme_make_string_without_copying, string); + SCHEME_MAKE_STRING, string); /* For MzScheme 30x: Use these typemaps if you are not going to use UTF8 encodings in your C code.