combine-diff: factor out stat-format mask
There are several conditionals in the combine diff code that check if we're doing --stat or --numstat output. Since these must all remain in sync, let's pull them out into a separate bit-mask. Arguably this could go into diff.h along with the other DIFF_FORMAT macros, but it's not clear that the definition of "which formats are stat" is universal (e.g., does --dirstat count? --summary?). So let's keep this local to combine-diff.c, where the meaning is more clearly "stat formats that combine-diff supports". Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King committed
Jan 24, 2019 at 07:33 UTC
8817f0cc6751199a996342fbc28bd343d231a5ca
1 file changed
+8
-6
combine-diff.c
+8
-6
@@ -1321,6 +1321,11 @@ static const char *path_path(void *obj)
1321
return path->path;
1322
}
1323
1324
+/*
1325
+ * Diff stat formats which we always compute solely against the first parent.
1326
+ */
1327
+#define STAT_FORMAT_MASK (DIFF_FORMAT_NUMSTAT \
1328
+ | DIFF_FORMAT_DIFFSTAT)
1329
1330
/* find set of paths that every parent touches */
1331
static struct combine_diff_path *find_paths_generic(const struct object_id *oid,
@@ -1342,8 +1347,7 @@ static struct combine_diff_path *find_paths_generic(const struct object_id *oid,
1347
* show stat against the first parent even when doing
1348
* combined diff.
1349
*/
1345
- int stat_opt = (output_format &
1346
- (DIFF_FORMAT_NUMSTAT|DIFF_FORMAT_DIFFSTAT));
1350
+ int stat_opt = output_format & STAT_FORMAT_MASK;
1351
if (i == 0 && stat_opt)
1352
opt->output_format = stat_opt;
1353
else
@@ -1470,8 +1474,7 @@ void diff_tree_combined(const struct object_id *oid,
1474
* show stat against the first parent even
1475
* when doing combined diff.
1476
*/
1473
- stat_opt = (opt->output_format &
1474
- (DIFF_FORMAT_NUMSTAT|DIFF_FORMAT_DIFFSTAT));
1477
+ stat_opt = opt->output_format & STAT_FORMAT_MASK;
1478
if (stat_opt) {
1479
diffopts.output_format = stat_opt;
1480
@@ -1515,8 +1518,7 @@ void diff_tree_combined(const struct object_id *oid,
1518
show_raw_diff(p, num_parent, rev);
1519
needsep = 1;
1520
}
1518
- else if (opt->output_format &
1519
- (DIFF_FORMAT_NUMSTAT|DIFF_FORMAT_DIFFSTAT))
1521
+ else if (opt->output_format & STAT_FORMAT_MASK)
1522
needsep = 1;
1523
else if (opt->output_format & DIFF_FORMAT_CALLBACK)
1524
handle_combined_callback(opt, paths, num_parent, num_paths);