From: Junio C Hamano Date: Wed, 23 May 2007 05:52:59 +0000 (-0700) Subject: Fix command line parameter parser of revert/cherry-pick X-Git-Tag: v1.5.3-rc0~205 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=32309f54ed4b71510f67f2376d755cd2733f29b1;p=git.git Fix command line parameter parser of revert/cherry-pick The parser was inconsistently done, in that it did not look at the last command line parameter to see if it could be an unknown option, although it was designed to notice unknown options if they were given in positions the command expects to find them (i.e. everything except the last parameter, which ought to be ). This prevented a very natural invocation $ git cherry-pick --usage from issuing the usage help. Signed-off-by: Junio C Hamano --- diff --git a/builtin-revert.c b/builtin-revert.c index ea2f15b97..80c348c40 100644 --- a/builtin-revert.c +++ b/builtin-revert.c @@ -45,8 +45,10 @@ static void parse_options(int argc, const char **argv) if (argc < 2) usage(usage_str); - for (i = 1; i < argc - 1; i++) { + for (i = 1; i < argc; i++) { arg = argv[i]; + if (arg[0] != '-') + break; if (!strcmp(arg, "-n") || !strcmp(arg, "--no-commit")) no_commit = 1; else if (!strcmp(arg, "-e") || !strcmp(arg, "--edit")) @@ -59,7 +61,8 @@ static void parse_options(int argc, const char **argv) else if (strcmp(arg, "-r")) usage(usage_str); } - + if (i != argc - 1) + usage(usage_str); arg = argv[argc - 1]; if (get_sha1(arg, sha1)) die ("Cannot find '%s'", arg);