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@xxxxxx> --- diff.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/diff.c b/diff.c index e01129f0ea..e469d5d2a0 100644 --- a/diff.c +++ b/diff.c @@ -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, -- 2.38.1