summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--system/graveman/sox.patch38
1 files changed, 38 insertions, 0 deletions
diff --git a/system/graveman/sox.patch b/system/graveman/sox.patch
new file mode 100644
index 0000000000..b14517ba50
--- /dev/null
+++ b/system/graveman/sox.patch
@@ -0,0 +1,38 @@
+diff -Naur /var/tmp/portage/graveman-0.3.12_p5/work/graveman-0.3.12-5/src/sox.c ./src/sox.c
+--- /var/tmp/portage/graveman-0.3.12_p5/work/graveman-0.3.12-5/src/sox.c 2005-05-28 02:37:14.000000000 +0200
++++ ./src/sox.c 2007-01-27 18:22:11.000000000 +0100
+@@ -37,7 +37,7 @@
+ gboolean check_sox()
+ {
+ gchar *Lsox = conf_get_string("sox");
+- gchar *Lcommandline, *Lerr = NULL;
++ gchar *Lcommandline, *Lerr = NULL, *Lstdout = NULL;
+ gboolean Lstatus;
+ gint Lexit = 0;
+
+@@ -47,12 +47,22 @@
+ if (!Lsox || !*Lsox) return FALSE;
+
+ Lcommandline = g_strdup_printf("%s -help", conf_get_string("sox"));
+- Lstatus = g_spawn_command_line_sync(Lcommandline, NULL, &Lerr, &Lexit, NULL);
++ Lstatus = g_spawn_command_line_sync(Lcommandline, &Lstdout, &Lerr, &Lexit, NULL);
+ g_free(Lcommandline);
+
+- GsupportMp3 = (Lstatus == TRUE && Lerr && ((strstr(Lerr, SOX_MP3))));
+- GsupportOgg = (Lstatus == TRUE && Lerr && ((strstr(Lerr, SOX_OGG))));
++ /* sox 12.17 outputs -help to stderr */
++ if (Lerr && strstr(Lerr, "12.17")) {
++ GsupportMp3 = (Lstatus == TRUE && Lerr && ((strstr(Lerr, SOX_MP3))));
++ GsupportOgg = (Lstatus == TRUE && Lerr && ((strstr(Lerr, SOX_OGG))));
++ }
++
++ /* sox 12.18 outputs -help to stdout */
++ else {
++ GsupportMp3 = (Lstatus == TRUE && Lstdout && ((strstr(Lstdout, SOX_MP3))));
++ GsupportOgg = (Lstatus == TRUE && Lstdout && ((strstr(Lstdout, SOX_OGG))));
++ }
+
++ g_free(Lstdout);
+ g_free(Lerr);
+
+ return Lstatus;