diff: report bogus input to -C/-M/-B
We already detect invalid input to these functions, but we simply exit with an error code, never saying anything as simple as "your input was wrong". Let's fix that. Before: $ git diff -CM $ echo $? 128 After: $ git diff -CM error: invalid argument to -C: M $ echo $? 128 There should be no problems with having diff_opt_parse print to stderr, as there is already precedent in complaining about bogus --color and --output arguments. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
1bb28d87e1
commit
07cd726527
6
diff.c
6
diff.c
@ -3142,18 +3142,18 @@ int diff_opt_parse(struct diff_options *options, const char **av, int ac)
|
|||||||
/* renames options */
|
/* renames options */
|
||||||
else if (!prefixcmp(arg, "-B")) {
|
else if (!prefixcmp(arg, "-B")) {
|
||||||
if ((options->break_opt = diff_scoreopt_parse(arg)) == -1)
|
if ((options->break_opt = diff_scoreopt_parse(arg)) == -1)
|
||||||
return -1;
|
return error("invalid argument to -B: %s", arg+2);
|
||||||
}
|
}
|
||||||
else if (!prefixcmp(arg, "-M")) {
|
else if (!prefixcmp(arg, "-M")) {
|
||||||
if ((options->rename_score = diff_scoreopt_parse(arg)) == -1)
|
if ((options->rename_score = diff_scoreopt_parse(arg)) == -1)
|
||||||
return -1;
|
return error("invalid argument to -M: %s", arg+2);
|
||||||
options->detect_rename = DIFF_DETECT_RENAME;
|
options->detect_rename = DIFF_DETECT_RENAME;
|
||||||
}
|
}
|
||||||
else if (!prefixcmp(arg, "-C")) {
|
else if (!prefixcmp(arg, "-C")) {
|
||||||
if (options->detect_rename == DIFF_DETECT_COPY)
|
if (options->detect_rename == DIFF_DETECT_COPY)
|
||||||
DIFF_OPT_SET(options, FIND_COPIES_HARDER);
|
DIFF_OPT_SET(options, FIND_COPIES_HARDER);
|
||||||
if ((options->rename_score = diff_scoreopt_parse(arg)) == -1)
|
if ((options->rename_score = diff_scoreopt_parse(arg)) == -1)
|
||||||
return -1;
|
return error("invalid argument to -C: %s", arg+2);
|
||||||
options->detect_rename = DIFF_DETECT_COPY;
|
options->detect_rename = DIFF_DETECT_COPY;
|
||||||
}
|
}
|
||||||
else if (!strcmp(arg, "--no-renames"))
|
else if (!strcmp(arg, "--no-renames"))
|
||||||
|
Loading…
Reference in New Issue
Block a user