]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
spawn: parse arguments - accept arguments inside '' or like does shell
authorJaroslav Kysela <perex@perex.cz>
Sat, 26 Aug 2017 14:53:40 +0000 (16:53 +0200)
committerJaroslav Kysela <perex@perex.cz>
Mon, 18 Sep 2017 13:09:24 +0000 (15:09 +0200)
src/spawn.c

index 7318524319a9e70c7709d467df3e22ecedd699a1..f1625e34d2756085d3c4a12234f0579a5c9e1df1 100644 (file)
@@ -362,7 +362,7 @@ spawn_parse_args(char ***argv, int argc, const char *cmd, const char **replace)
 {
   char *s, *f, *p, *a;
   const char **r;
-  int i = 0, l;
+  int i = 0, l, eow = 0;
 
   if (!argv || !cmd)
     return -1;
@@ -374,7 +374,8 @@ spawn_parse_args(char ***argv, int argc, const char *cmd, const char **replace)
     while (*s == ' ')
       s++;
     f = s;
-    while (*s && *s != ' ') {
+    eow = *s == '\'' || *s == '"' ? *s++ : ' ';
+    while (*s && *s != eow) {
       if (*s == '\\') {
         l = *(s + 1);
         if (l == 'b')