From 679b5916cdafdcfa9fb36c31dbf53d7e4aa0af0b Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Wed, 27 Jan 2021 16:37:22 +0000 Subject: range-diff/format-patch: refactor check for commit range Currently, when called with exactly two arguments, `git range-diff` tests for a literal `..` in each of the two. Likewise, the argument provided via `--range-diff` to `git format-patch` is checked in the same manner. However, `^!` is a perfectly valid commit range, equivalent to `^..` according to the `SPECIFYING RANGES` section of gitrevisions[7]. In preparation for allowing more sophisticated ways to specify commit ranges, let's refactor the check into its own function. Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- range-diff.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'range-diff.h') diff --git a/range-diff.h b/range-diff.h index 583ced2e8e..c17dbc2e75 100644 --- a/range-diff.h +++ b/range-diff.h @@ -16,4 +16,12 @@ int show_range_diff(const char *range1, const char *range2, const struct diff_options *diffopt, const struct strvec *other_arg); +/* + * Determine whether the given argument is usable as a range argument of `git + * range-diff`, e.g. A..B. Note that this only validates the format but does + * _not_ parse it, i.e. it does _not_ look up the specified commits in the + * local repository. + */ +int is_range_diff_range(const char *arg); + #endif -- cgit v1.2.3