diff options
author | Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | 2009-06-14 01:58:43 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-06-13 17:08:37 -0700 |
commit | 6e0800ef2575751f2e20d11e2cfe305304e5e9b8 (patch) | |
tree | c222ae6d5b9d1a3dfa5caaca6dece9bb015f03e9 /builtin-rev-parse.c | |
parent | 824af25ace464177820fc69c19fc03ae4fc9e4b1 (diff) | |
download | git-6e0800ef2575751f2e20d11e2cfe305304e5e9b8.tar.gz |
parse-opt: make PARSE_OPT_STOP_AT_NON_OPTION available to git rev-parse
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin-rev-parse.c')
-rw-r--r-- | builtin-rev-parse.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/builtin-rev-parse.c b/builtin-rev-parse.c index 112d622cda..5ea7518b0f 100644 --- a/builtin-rev-parse.c +++ b/builtin-rev-parse.c @@ -301,7 +301,7 @@ static const char *skipspaces(const char *s) static int cmd_parseopt(int argc, const char **argv, const char *prefix) { - static int keep_dashdash = 0; + static int keep_dashdash = 0, stop_at_non_option = 0; static char const * const parseopt_usage[] = { "git rev-parse --parseopt [options] -- [<args>...]", NULL @@ -309,6 +309,9 @@ static int cmd_parseopt(int argc, const char **argv, const char *prefix) static struct option parseopt_opts[] = { OPT_BOOLEAN(0, "keep-dashdash", &keep_dashdash, "keep the `--` passed as an arg"), + OPT_BOOLEAN(0, "stop-at-non-option", &stop_at_non_option, + "stop parsing after the " + "first non-option argument"), OPT_END(), }; @@ -394,7 +397,8 @@ static int cmd_parseopt(int argc, const char **argv, const char *prefix) ALLOC_GROW(opts, onb + 1, osz); memset(opts + onb, 0, sizeof(opts[onb])); argc = parse_options(argc, argv, prefix, opts, usage, - keep_dashdash ? PARSE_OPT_KEEP_DASHDASH : 0); + keep_dashdash ? PARSE_OPT_KEEP_DASHDASH : 0 | + stop_at_non_option ? PARSE_OPT_STOP_AT_NON_OPTION : 0); strbuf_addf(&parsed, " --"); sq_quote_argv(&parsed, argv, 0); |