Skip to content

Commit 26a0f58

Browse files
sorganovgitster
authored andcommitted
diff-merges: refactor set_diff_merges()
Split set_diff_merges() into separate parsing and execution functions, the former to be reused for parsing of configuration values later in the patch series. Signed-off-by: Sergey Organov <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 4320815 commit 26a0f58

File tree

1 file changed

+21
-15
lines changed

1 file changed

+21
-15
lines changed

diff-merges.c

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -55,29 +55,35 @@ static void set_dense_combined(struct rev_info *revs)
5555
revs->dense_combined_merges = 1;
5656
}
5757

58-
static void set_diff_merges(struct rev_info *revs, const char *optarg)
58+
static diff_merges_setup_func_t func_by_opt(const char *optarg)
5959
{
60-
if (!strcmp(optarg, "off") || !strcmp(optarg, "none")) {
61-
suppress(revs);
62-
/* Return early to leave revs->merges_need_diff unset */
63-
return;
64-
}
65-
60+
if (!strcmp(optarg, "off") || !strcmp(optarg, "none"))
61+
return suppress;
6662
if (!strcmp(optarg, "1") || !strcmp(optarg, "first-parent"))
67-
set_first_parent(revs);
63+
return set_first_parent;
6864
else if (!strcmp(optarg, "m") || !strcmp(optarg, "separate"))
69-
set_separate(revs);
65+
return set_separate;
7066
else if (!strcmp(optarg, "c") || !strcmp(optarg, "combined"))
71-
set_combined(revs);
67+
return set_combined;
7268
else if (!strcmp(optarg, "cc") || !strcmp(optarg, "dense-combined"))
73-
set_dense_combined(revs);
69+
return set_dense_combined;
7470
else if (!strcmp(optarg, "on"))
75-
set_to_default(revs);
76-
else
71+
return set_to_default;
72+
return NULL;
73+
}
74+
75+
static void set_diff_merges(struct rev_info *revs, const char *optarg)
76+
{
77+
diff_merges_setup_func_t func = func_by_opt(optarg);
78+
79+
if (!func)
7780
die(_("unknown value for --diff-merges: %s"), optarg);
7881

79-
/* The flag is cleared by set_xxx() functions, so don't move this up */
80-
revs->merges_need_diff = 1;
82+
func(revs);
83+
84+
/* NOTE: the merges_need_diff flag is cleared by func() call */
85+
if (func != suppress)
86+
revs->merges_need_diff = 1;
8187
}
8288

8389
/*

0 commit comments

Comments
 (0)