]> git.ipfire.org Git - thirdparty/git.git/commitdiff
diff: factor out add_diff_options()
authorRené Scharfe <l.s.r@web.de>
Thu, 1 Dec 2022 22:49:11 +0000 (23:49 +0100)
committerJunio C Hamano <gitster@pobox.com>
Thu, 1 Dec 2022 23:25:29 +0000 (08:25 +0900)
Add a function for appending the parseopts member of struct diff_options
to a struct option array.  Use it in two sites instead of accessing the
parseopts member directly.  Decoupling callers from diff internals like
that allows us to change the latter.

Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/range-diff.c
diff-no-index.c
diff.c
diff.h

index e2a74efb42a795a5139932bd052999d050cab420..aecfae12d3ae0777a57bec2c02dffa7cffde3d8f 100644 (file)
@@ -47,7 +47,7 @@ int cmd_range_diff(int argc, const char **argv, const char *prefix)
 
        repo_diff_setup(the_repository, &diffopt);
 
-       options = parse_options_concat(range_diff_options, diffopt.parseopts);
+       options = add_diff_options(range_diff_options, &diffopt);
        argc = parse_options(argc, argv, prefix, options,
                             builtin_range_diff_usage, PARSE_OPT_KEEP_DASHDASH);
 
index 18edbdf4b59ec020cc58e3d16d01d92edfdc302e..05fafd0019b6d5acc7295b999a8a46c92e1a649e 100644 (file)
@@ -255,8 +255,7 @@ int diff_no_index(struct rev_info *revs,
        };
        struct option *options;
 
-       options = parse_options_concat(no_index_options,
-                                      revs->diffopt.parseopts);
+       options = add_diff_options(no_index_options, &revs->diffopt);
        argc = parse_options(argc, argv, revs->prefix, options,
                             diff_no_index_usage, 0);
        if (argc != 2) {
diff --git a/diff.c b/diff.c
index 648f6717a5597c30c423256a25e0fece08cd30de..a74bfb4a6078d69ea9c3cd6b2654bdc8f674d9e8 100644 (file)
--- a/diff.c
+++ b/diff.c
@@ -5397,6 +5397,12 @@ static int diff_opt_rotate_to(const struct option *opt, const char *arg, int uns
        return 0;
 }
 
+struct option *add_diff_options(const struct option *opts,
+                               struct diff_options *options)
+{
+       return parse_options_concat(opts, options->parseopts);
+}
+
 static void prep_parse_options(struct diff_options *options)
 {
        struct option parseopts[] = {
diff --git a/diff.h b/diff.h
index 8ae18e5ab1ef31b5ff8911a3e1fb671bd4043482..5229f20486cd2d327914bbfa7b21a7a37cead5f7 100644 (file)
--- a/diff.h
+++ b/diff.h
@@ -539,6 +539,7 @@ int git_diff_ui_config(const char *var, const char *value, void *cb);
 #define diff_setup(diffopts) repo_diff_setup(the_repository, diffopts)
 #endif
 void repo_diff_setup(struct repository *, struct diff_options *);
+struct option *add_diff_options(const struct option *, struct diff_options *);
 int diff_opt_parse(struct diff_options *, const char **, int, const char *);
 void diff_setup_done(struct diff_options *);
 int git_config_rename(const char *var, const char *value);