cmdline: fix -- to escape files starting with -
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 17 Jan 2013 16:03:07 +0000 (17:03 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 19 Jan 2013 13:50:36 +0000 (14:50 +0100)
Fixes Ticket2127

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
cmdutils.c

index 38c8159..9d916e7 100644 (file)
@@ -656,6 +656,7 @@ int split_commandline(OptionParseContext *octx, int argc, char *argv[],
                       const OptionGroupDef *groups, int nb_groups)
 {
     int optindex = 1;
+    int dashdash = -2;
 
     /* perform system-dependent conversions for arguments list */
     prepare_app_arguments(&argc, &argv);
@@ -670,8 +671,12 @@ int split_commandline(OptionParseContext *octx, int argc, char *argv[],
 
         av_log(NULL, AV_LOG_DEBUG, "Reading option '%s' ...", opt);
 
+        if (opt[0] == '-' && opt[1] == '-' && !opt[2]) {
+            dashdash = optindex;
+            continue;
+        }
         /* unnamed group separators, e.g. output filename */
-        if (opt[0] != '-' || !opt[1]) {
+        if (opt[0] != '-' || !opt[1] || dashdash+1 == optindex) {
             finish_group(octx, 0, opt);
             av_log(NULL, AV_LOG_DEBUG, " matched as %s.\n", groups[0].name);
             continue;