@@ -20,9 +20,20 @@ static void suppress(struct rev_info *revs)
20
20
revs -> remerge_diff = 0 ;
21
21
}
22
22
23
- static void set_separate (struct rev_info * revs )
23
+ static void common_setup (struct rev_info * revs )
24
24
{
25
25
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 );
26
37
revs -> separate_merges = 1 ;
27
38
revs -> simplify_history = 0 ;
28
39
}
@@ -35,29 +46,29 @@ static void set_first_parent(struct rev_info *revs)
35
46
36
47
static void set_combined (struct rev_info * revs )
37
48
{
38
- suppress (revs );
49
+ common_setup (revs );
39
50
revs -> combine_merges = 1 ;
40
51
revs -> dense_combined_merges = 0 ;
41
52
}
42
53
43
54
static void set_dense_combined (struct rev_info * revs )
44
55
{
45
- suppress (revs );
56
+ common_setup (revs );
46
57
revs -> combine_merges = 1 ;
47
58
revs -> dense_combined_merges = 1 ;
48
59
}
49
60
50
61
static void set_remerge_diff (struct rev_info * revs )
51
62
{
52
- suppress (revs );
63
+ common_setup (revs );
53
64
revs -> remerge_diff = 1 ;
54
65
revs -> simplify_history = 0 ;
55
66
}
56
67
57
68
static diff_merges_setup_func_t func_by_opt (const char * optarg )
58
69
{
59
70
if (!strcmp (optarg , "off" ) || !strcmp (optarg , "none" ))
60
- return suppress ;
71
+ return set_none ;
61
72
if (!strcmp (optarg , "1" ) || !strcmp (optarg , "first-parent" ))
62
73
return set_first_parent ;
63
74
if (!strcmp (optarg , "separate" ))
@@ -81,10 +92,6 @@ static void set_diff_merges(struct rev_info *revs, const char *optarg)
81
92
die (_ ("invalid value for '%s': '%s'" ), "--diff-merges" , optarg );
82
93
83
94
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 ;
88
95
}
89
96
90
97
/*
@@ -115,6 +122,7 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv)
115
122
116
123
if (!suppress_m_parsing && !strcmp (arg , "-m" )) {
117
124
set_to_default (revs );
125
+ revs -> merges_need_diff = 0 ;
118
126
} else if (!strcmp (arg , "-c" )) {
119
127
set_combined (revs );
120
128
revs -> merges_imply_patch = 1 ;
@@ -125,7 +133,7 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv)
125
133
set_remerge_diff (revs );
126
134
revs -> merges_imply_patch = 1 ;
127
135
} else if (!strcmp (arg , "--no-diff-merges" )) {
128
- suppress (revs );
136
+ set_none (revs );
129
137
} else if (!strcmp (arg , "--combined-all-paths" )) {
130
138
revs -> combined_all_paths = 1 ;
131
139
} 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)
139
147
140
148
void diff_merges_suppress (struct rev_info * revs )
141
149
{
142
- suppress (revs );
150
+ set_none (revs );
143
151
}
144
152
145
153
void diff_merges_default_to_first_parent (struct rev_info * revs )
0 commit comments