@@ -4615,7 +4615,7 @@ static void run_checkdiff(struct diff_filepair *p, struct diff_options *o)
builtin_checkdiff(name, other, attr_path, p->one, p->two, o);
}
-static void prep_parse_options(struct diff_options *options);
+static struct option *get_diff_parseopts(struct diff_options *options);
void repo_diff_setup(struct repository *r, struct diff_options *options)
{
@@ -4663,7 +4663,7 @@ void repo_diff_setup(struct repository *r, struct diff_options *options)
options->color_moved = diff_color_moved_default;
options->color_moved_ws_handling = diff_color_moved_ws_default;
- prep_parse_options(options);
+ options->parseopts = get_diff_parseopts(options);
}
static const char diff_status_letters[] = {
@@ -5419,7 +5419,7 @@ static int diff_opt_rotate_to(const struct option *opt, const char *arg, int uns
return 0;
}
-static void prep_parse_options(struct diff_options *options)
+static struct option *get_diff_parseopts(struct diff_options *options)
{
struct option parseopts[] = {
OPT_GROUP(N_("Diff output format options")),
@@ -5689,8 +5689,7 @@ static void prep_parse_options(struct diff_options *options)
OPT_END()
};
- ALLOC_ARRAY(options->parseopts, ARRAY_SIZE(parseopts));
- memcpy(options->parseopts, parseopts, sizeof(parseopts));
+ return parse_options_dup(parseopts);
}
struct option *add_diff_options(const struct option *parseopts,
prep_parse_options() sets the parseopts member of struct diff_options. Let it return the pointer instead and have its caller do the assignment instead and rename the function to get_diff_parseopts() to reflect that change. This allows using it in other places and with other variables. Signed-off-by: René Scharfe <l.s.r@web.de> --- diff.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) -- 2.38.1