From: Jan Nieuwenhuizen Date: Mon, 28 Feb 2011 14:49:13 +0000 (+0100) Subject: ly:spawn: pass utf-8 strings to g_spawn. Fixes #1522. X-Git-Tag: release/2.13.52-1~3^2~12 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=d8c3e0af38c0a9645fec2e49ecf32c8170f70e0b;p=lilypond.git ly:spawn: pass utf-8 strings to g_spawn. Fixes #1522. --- 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;