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
This commit is contained in:
Junio C Hamano
2025-09-29 11:40:35 -07:00
30 changed files with 114 additions and 109 deletions

View File

@@ -7,6 +7,7 @@
#include "range-diff.h"
#include "config.h"
#include "parse.h"
#include "color.h"
static const char * const builtin_range_diff_usage[] = {
@@ -87,7 +88,7 @@ int cmd_range_diff(int argc,
/* force color when --dual-color was used */
if (!simple_color)
diffopt.use_color = 1;
diffopt.use_color = GIT_COLOR_ALWAYS;
/* If `--diff-merges` was specified, imply `--merges` */
if (diff_merges_arg.nr) {