]> Kevux Git Server - rit/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 e2a74ef..aecfae1 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 18edbdf..05fafd0 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 648f671..a74bfb4 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 8ae18e5..5229f20 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);