[FFmpeg-cvslog] cmdline: fix -- to escape files starting with -

Michael Niedermayer git at videolan.org
Sat Jan 19 15:17:13 CET 2013


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Thu Jan 17 17:03:07 2013 +0100| [938152196871be80d2dfa6cf9728ee0873132604] | committer: Michael Niedermayer

cmdline: fix -- to escape files starting with -

Fixes Ticket2127

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

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=938152196871be80d2dfa6cf9728ee0873132604
---

 cmdutils.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/cmdutils.c b/cmdutils.c
index 38c8159..9d916e7 100644
--- a/cmdutils.c
+++ b/cmdutils.c
@@ -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;



More information about the ffmpeg-cvslog mailing list