diff options
| author | Junio C Hamano <gitster@pobox.com> | 2025-09-29 11:40:35 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2025-09-29 11:40:35 -0700 |
| commit | a89fa2fff2e2e5c13df0caccd913427b5c98a4b4 (patch) | |
| tree | edcb0bee38f7654abbe08b40aaf2df85061cd2df /parse-options-cb.c | |
| parent | a5d4779e6ed1bebf56ab90bd264e437ac2232b98 (diff) | |
| parent | 69a7e8d32f37ca9cefc6b82fe848415d1d4200d9 (diff) | |
Merge branch 'jk/color-variable-fixes'
Some places in the code confused a variable that is *not* a boolean
to enable color but is an enum that records what the user requested
to do about color. A couple of bugs of this sort have been fixed,
while the code has been cleaned up to prevent similar bugs in the
future.
* jk/color-variable-fixes:
config: store want_color() result in a separate bool
add-interactive: retain colorbool values longer
color: return bool from want_color()
color: use git_colorbool enum type to store colorbools
pretty: use format_commit_context.auto_color as colorbool
diff: stop passing ecbdata->use_color as boolean
diff: pass o->use_color directly to fill_metainfo()
diff: don't use diff_options.use_color as a strict bool
diff: simplify color_moved check when flushing
grep: don't treat grep_opt.color as a strict bool
color: return enum from git_config_colorbool()
color: use GIT_COLOR_* instead of numeric constants
Diffstat (limited to 'parse-options-cb.c')
| -rw-r--r-- | parse-options-cb.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/parse-options-cb.c b/parse-options-cb.c index 50c8afe412..976cc86385 100644 --- a/parse-options-cb.c +++ b/parse-options-cb.c @@ -50,12 +50,12 @@ int parse_opt_expiry_date_cb(const struct option *opt, const char *arg, int parse_opt_color_flag_cb(const struct option *opt, const char *arg, int unset) { - int value; + enum git_colorbool value; if (!arg) arg = unset ? "never" : (const char *)opt->defval; value = git_config_colorbool(NULL, arg); - if (value < 0) + if (value == GIT_COLOR_UNKNOWN) return error(_("option `%s' expects \"always\", \"auto\", or \"never\""), opt->long_name); *(int *)opt->value = value; |
