diff options
author | Junio C Hamano <gitster@pobox.com> | 2010-07-07 11:13:40 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-07-07 11:13:40 -0700 |
commit | 878bd809d7c879f1a9ea00bdb4cb97d846ef4e93 (patch) | |
tree | a7187cf9eef1b4bcdf71cd53fb74d0e4428ca3e2 | |
parent | 8e99859266fa2f565d951a0a2ed8aed4b6e2ae8a (diff) | |
parent | 29981380d03ffa63765dbeaea53a7ac9e8d6bc4f (diff) | |
download | git-878bd809d7c879f1a9ea00bdb4cb97d846ef4e93.tar.gz |
Merge branch 'maint-1.6.4' into maint
* maint-1.6.4:
rev-parse: fix --parse-opt --keep-dashdash --stop-at-non-option
-rw-r--r-- | builtin/rev-parse.c | 4 | ||||
-rwxr-xr-x | t/t1502-rev-parse-parseopt.sh | 18 |
2 files changed, 20 insertions, 2 deletions
diff --git a/builtin/rev-parse.c b/builtin/rev-parse.c index 8fbf9d0db6..95c59fa686 100644 --- a/builtin/rev-parse.c +++ b/builtin/rev-parse.c @@ -407,8 +407,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 | - stop_at_non_option ? PARSE_OPT_STOP_AT_NON_OPTION : 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); diff --git a/t/t1502-rev-parse-parseopt.sh b/t/t1502-rev-parse-parseopt.sh index e504058062..3b612c67be 100755 --- a/t/t1502-rev-parse-parseopt.sh +++ b/t/t1502-rev-parse-parseopt.sh @@ -79,4 +79,22 @@ test_expect_success 'test --parseopt --keep-dashdash' ' test_cmp expect output ' +cat >expect <<EOF +set -- --foo -- '--' 'arg' '--spam=ham' +EOF + +test_expect_success 'test --parseopt --keep-dashdash --stop-at-non-option with --' ' + git rev-parse --parseopt --keep-dashdash --stop-at-non-option -- --foo -- arg --spam=ham <optionspec >output && + test_cmp expect output +' + +cat > expect <<EOF +set -- --foo -- 'arg' '--spam=ham' +EOF + +test_expect_success 'test --parseopt --keep-dashdash --stop-at-non-option without --' ' + git rev-parse --parseopt --keep-dashdash --stop-at-non-option -- --foo arg --spam=ham <optionspec >output && + test_cmp expect output +' + test_done |