Browse Source

repo-config: fix printing of bool

When a bool variable appears without any value, it means true.
However, replacing the NULL value with an empty string, an earlier
commit f067a13745 broke show-config.

Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Junio C Hamano 19 years ago
parent
commit
acb70149bc
  1. 9
      repo-config.c

9
repo-config.c

@ -29,16 +29,13 @@ static int show_config(const char* key_, const char* value_)
const char *vptr = value; const char *vptr = value;
int dup_error = 0; int dup_error = 0;


if (value_ == NULL)
value_ = "";

if (!use_key_regexp && strcmp(key_, key)) if (!use_key_regexp && strcmp(key_, key))
return 0; return 0;
if (use_key_regexp && regexec(key_regexp, key_, 0, NULL, 0)) if (use_key_regexp && regexec(key_regexp, key_, 0, NULL, 0))
return 0; return 0;
if (regexp != NULL && if (regexp != NULL &&
(do_not_match ^ (do_not_match ^
regexec(regexp, value_, 0, NULL, 0))) regexec(regexp, (value_?value_:""), 0, NULL, 0)))
return 0; return 0;


if (show_keys) if (show_keys)
@ -46,11 +43,11 @@ static int show_config(const char* key_, const char* value_)
if (seen && !do_all) if (seen && !do_all)
dup_error = 1; dup_error = 1;
if (type == T_INT) if (type == T_INT)
sprintf(value, "%d", git_config_int(key_, value_)); sprintf(value, "%d", git_config_int(key_, value_?value_:""));
else if (type == T_BOOL) else if (type == T_BOOL)
vptr = git_config_bool(key_, value_) ? "true" : "false"; vptr = git_config_bool(key_, value_) ? "true" : "false";
else else
vptr = value_; vptr = value_?value_:"";
seen++; seen++;
if (dup_error) { if (dup_error) {
error("More than one value for the key %s: %s", error("More than one value for the key %s: %s",

Loading…
Cancel
Save