@@ -20,9 +20,20 @@ static void suppress(struct rev_info *revs)
2020 revs -> remerge_diff = 0 ;
2121}
2222
23- static void set_separate (struct rev_info * revs )
23+ static void common_setup (struct rev_info * revs )
2424{
2525 suppress (revs );
26+ revs -> merges_need_diff = 1 ;
27+ }
28+
29+ static void set_none (struct rev_info * revs )
30+ {
31+ suppress (revs );
32+ }
33+
34+ static void set_separate (struct rev_info * revs )
35+ {
36+ common_setup (revs );
2637 revs -> separate_merges = 1 ;
2738 revs -> simplify_history = 0 ;
2839}
@@ -35,40 +46,40 @@ static void set_first_parent(struct rev_info *revs)
3546
3647static void set_combined (struct rev_info * revs )
3748{
38- suppress (revs );
49+ common_setup (revs );
3950 revs -> combine_merges = 1 ;
4051 revs -> dense_combined_merges = 0 ;
4152}
4253
4354static void set_dense_combined (struct rev_info * revs )
4455{
45- suppress (revs );
56+ common_setup (revs );
4657 revs -> combine_merges = 1 ;
4758 revs -> dense_combined_merges = 1 ;
4859}
4960
5061static void set_remerge_diff (struct rev_info * revs )
5162{
52- suppress (revs );
63+ common_setup (revs );
5364 revs -> remerge_diff = 1 ;
5465 revs -> simplify_history = 0 ;
5566}
5667
5768static diff_merges_setup_func_t func_by_opt (const char * optarg )
5869{
5970 if (!strcmp (optarg , "off" ) || !strcmp (optarg , "none" ))
60- return suppress ;
71+ return set_none ;
6172 if (!strcmp (optarg , "1" ) || !strcmp (optarg , "first-parent" ))
6273 return set_first_parent ;
63- else if (!strcmp (optarg , "separate" ))
74+ if (!strcmp (optarg , "separate" ))
6475 return set_separate ;
65- else if (!strcmp (optarg , "c" ) || !strcmp (optarg , "combined" ))
76+ if (!strcmp (optarg , "c" ) || !strcmp (optarg , "combined" ))
6677 return set_combined ;
67- else if (!strcmp (optarg , "cc" ) || !strcmp (optarg , "dense-combined" ))
78+ if (!strcmp (optarg , "cc" ) || !strcmp (optarg , "dense-combined" ))
6879 return set_dense_combined ;
69- else if (!strcmp (optarg , "r" ) || !strcmp (optarg , "remerge" ))
80+ if (!strcmp (optarg , "r" ) || !strcmp (optarg , "remerge" ))
7081 return set_remerge_diff ;
71- else if (!strcmp (optarg , "m" ) || !strcmp (optarg , "on" ))
82+ if (!strcmp (optarg , "m" ) || !strcmp (optarg , "on" ))
7283 return set_to_default ;
7384 return NULL ;
7485}
@@ -81,10 +92,6 @@ static void set_diff_merges(struct rev_info *revs, const char *optarg)
8192 die (_ ("invalid value for '%s': '%s'" ), "--diff-merges" , optarg );
8293
8394 func (revs );
84-
85- /* NOTE: the merges_need_diff flag is cleared by func() call */
86- if (func != suppress )
87- revs -> merges_need_diff = 1 ;
8895}
8996
9097/*
@@ -115,6 +122,7 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv)
115122
116123 if (!suppress_m_parsing && !strcmp (arg , "-m" )) {
117124 set_to_default (revs );
125+ revs -> merges_need_diff = 0 ;
118126 } else if (!strcmp (arg , "-c" )) {
119127 set_combined (revs );
120128 revs -> merges_imply_patch = 1 ;
@@ -125,7 +133,7 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv)
125133 set_remerge_diff (revs );
126134 revs -> merges_imply_patch = 1 ;
127135 } else if (!strcmp (arg , "--no-diff-merges" )) {
128- suppress (revs );
136+ set_none (revs );
129137 } else if (!strcmp (arg , "--combined-all-paths" )) {
130138 revs -> combined_all_paths = 1 ;
131139 } else if ((argcount = parse_long_opt ("diff-merges" , argv , & optarg ))) {
@@ -139,7 +147,7 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv)
139147
140148void diff_merges_suppress (struct rev_info * revs )
141149{
142- suppress (revs );
150+ set_none (revs );
143151}
144152
145153void diff_merges_default_to_first_parent (struct rev_info * revs )
0 commit comments