]> git.donarmstrong.com Git - lilypond.git/commitdiff
ly:spawn: pass utf-8 strings to g_spawn. Fixes #1522.
authorJan Nieuwenhuizen <janneke@gnu.org>
Mon, 28 Feb 2011 14:49:13 +0000 (15:49 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Mon, 28 Feb 2011 14:50:59 +0000 (15:50 +0100)
lily/general-scheme.cc

index 59893503f5b2a24e01b1553754be8097306e04b1..ae31e1eb9f8433d024faf3b9d8856db64730b83b 100644 (file)
@@ -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;