[PATCH] diff: report bogus input to -C/-M/-B
From: Jeff King <hidden>
Date: 2016-06-15 22:49:50
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 <redacted> --- More old patch potpourri. Original thread: http://article.gmane.org/gmane.comp.version-control.git/146570 I think this one just got overlooked. diff.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/diff.c b/diff.c
index 71efa8e..8487643 100644
--- a/diff.c
+++ b/diff.c@@ -3142,18 +3142,18 @@ int diff_opt_parse(struct diff_options *options, const char **av, int ac) /* renames options */ else if (!prefixcmp(arg, "-B")) { 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")) { 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; } else if (!prefixcmp(arg, "-C")) { if (options->detect_rename == DIFF_DETECT_COPY) DIFF_OPT_SET(options, FIND_COPIES_HARDER); 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; } else if (!strcmp(arg, "--no-renames"))
--
1.7.3.1.235.gdd6c0