X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fgeneral-scheme.cc;h=ae31e1eb9f8433d024faf3b9d8856db64730b83b;hb=d8c3e0af38c0a9645fec2e49ecf32c8170f70e0b;hp=59893503f5b2a24e01b1553754be8097306e04b1;hpb=d4c01a7817718c0f9b79bdd9dc907f075dcc4de1;p=lilypond.git diff --git a/lily/general-scheme.cc b/lily/general-scheme.cc index 59893503f5..ae31e1eb9f 100644 --- a/lily/general-scheme.cc +++ b/lily/general-scheme.cc @@ -689,6 +689,15 @@ ly_run_command (char *argv[], char **standard_output, char **standard_error) return exit_status; } +static char * +ly_scm2utf8 (SCM str) +{ + char *p = ly_scm2str0 (str); + char *g = g_locale_to_utf8 (p, -1, 0, 0, 0); + free (p); + return g; +} + LY_DEFINE (ly_spawn, "ly:spawn", 1, 0, 1, (SCM command, SCM rest), "Simple interface to g_spawn_sync" @@ -702,9 +711,9 @@ LY_DEFINE (ly_spawn, "ly:spawn", char **argv = new char*[argc + 2]; int n = 0; - argv[n++] = ly_scm2str0 (command); + argv[n++] = ly_scm2utf8 (command); for (SCM s = rest; scm_is_pair (s); s = scm_cdr (s)) - argv[n++] = ly_scm2str0 (scm_car (s)); + argv[n++] = ly_scm2utf8 (scm_car (s)); argv[n] = 0; char *standard_output = 0;