diff: refactor COLOR_DIFF from a flag into an int
This lets us store more than just a bit flag for whether we want color; we can also store whether we want automatic colors. This can be useful for making the automatic-color decision closer to the point of use. This mostly just involves replacing DIFF_OPT_* calls with manipulations of the flag. The biggest exception is that calls to DIFF_OPT_TST must check for "o->use_color > 0", which lets an "unknown" value (i.e., the default) stay at "no color". In the previous code, a value of "-1" was not propagated at all. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
2e6c012e10
commit
f1c9626105
5
diff.h
5
diff.h
@ -58,7 +58,7 @@ typedef struct strbuf *(*diff_prefix_fn_t)(struct diff_options *opt, void *data)
|
||||
#define DIFF_OPT_SILENT_ON_REMOVE (1 << 5)
|
||||
#define DIFF_OPT_FIND_COPIES_HARDER (1 << 6)
|
||||
#define DIFF_OPT_FOLLOW_RENAMES (1 << 7)
|
||||
#define DIFF_OPT_COLOR_DIFF (1 << 8)
|
||||
/* (1 << 8) unused */
|
||||
/* (1 << 9) unused */
|
||||
#define DIFF_OPT_HAS_CHANGES (1 << 10)
|
||||
#define DIFF_OPT_QUICK (1 << 11)
|
||||
@ -101,6 +101,7 @@ struct diff_options {
|
||||
const char *single_follow;
|
||||
const char *a_prefix, *b_prefix;
|
||||
unsigned flags;
|
||||
int use_color;
|
||||
int context;
|
||||
int interhunkcontext;
|
||||
int break_opt;
|
||||
@ -159,7 +160,7 @@ enum color_diff {
|
||||
};
|
||||
const char *diff_get_color(int diff_use_color, enum color_diff ix);
|
||||
#define diff_get_color_opt(o, ix) \
|
||||
diff_get_color(DIFF_OPT_TST((o), COLOR_DIFF), ix)
|
||||
diff_get_color((o)->use_color, ix)
|
||||
|
||||
|
||||
extern const char mime_boundary_leader[];
|
||||
|
Reference in New Issue
Block a user