From 6bbfd1fa98b0c1fa1684bd35e64404799f0cc2b3 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Fri, 25 Sep 2009 20:44:44 +0200 Subject: parse-opt: ignore negation of OPT_NONEG for ambiguity checks parse_long_opt always matches both --opt and --no-opt for any option "opt", and only get_value checks whether --no-opt is actually valid. Since the options for git branch contains both "no-merged" and "merged" there are two matches for --no-merge, but no exact match. With this patch the negation of a NONEG option is rejected earlier, but it changes the error message from "option `no-opt' isn't available" to "unknown option `no-opt'". [jk: added test] Signed-off-by: Andreas Schwab Signed-off-by: Jeff King Signed-off-by: Shawn O. Pearce --- t/t0040-parse-options.sh | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 't/t0040-parse-options.sh') diff --git a/t/t0040-parse-options.sh b/t/t0040-parse-options.sh index bbc821ef97..3d450ed379 100755 --- a/t/t0040-parse-options.sh +++ b/t/t0040-parse-options.sh @@ -33,6 +33,8 @@ Magic arguments --quux means --quux -NUM set integer to NUM + same as -b + --ambiguous positive ambiguity + --no-ambiguous negative ambiguity Standard options --abbrev[=] use digits to display SHA-1s @@ -315,4 +317,22 @@ test_expect_success 'OPT_NUMBER_CALLBACK() works' ' test_cmp expect output ' +cat >expect <output 2>output.err && + test ! -s output.err && + test_cmp expect output +' + test_done -- cgit v1.2.1