Skip to content

Commit 12df3c2

Browse files
peffgitster
authored andcommitted
diff: pass o->use_color directly to fill_metainfo()
We pass the use_color parameter of fill_metainfo() as a strict boolean, using: want_color(o->use_color) && !pgm to derive its value. But then inside the function, we pass it to diff_get_color(), which expects one of the git_colorbool enum values, and so feeds it to want_color() again. Even though want_color() produces a strict 0/1 boolean, this doesn't produce wrong results because want_color() is idempotent. Since GIT_COLOR_ALWAYS and NEVER are defined as 1 and 0, and because want_color() passes through those values, evaluating "want_color(foo)" and "want_color(want_color(foo))" will return the same result. But as part of a longer strategy to align the types we use for storing these values, let's pass through the colorbool directly. To handle the "&&" case here, we'll convert the presence of "pgm" into "NEVER", which arguably makes the intent of the code more clear anyway. Signed-off-by: Jeff King <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 4cfc971 commit 12df3c2

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

diff.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4580,7 +4580,7 @@ static void run_diff_cmd(const struct external_diff *pgm,
45804580
*/
45814581
fill_metainfo(msg, name, other, one, two, o, p,
45824582
&must_show_header,
4583-
want_color(o->use_color) && !pgm);
4583+
pgm ? GIT_COLOR_NEVER : o->use_color);
45844584
xfrm_msg = msg->len ? msg->buf : NULL;
45854585
}
45864586

0 commit comments

Comments
 (0)