|
|
|
@ -99,6 +99,7 @@ static int show_config(const char *key_, const char *value_, void *cb)
@@ -99,6 +99,7 @@ static int show_config(const char *key_, const char *value_, void *cb)
|
|
|
|
|
const char *vptr = value; |
|
|
|
|
int must_free_vptr = 0; |
|
|
|
|
int dup_error = 0; |
|
|
|
|
int must_print_delim = 0; |
|
|
|
|
|
|
|
|
|
if (!use_key_regexp && strcmp(key_, key)) |
|
|
|
|
return 0; |
|
|
|
@ -109,10 +110,8 @@ static int show_config(const char *key_, const char *value_, void *cb)
@@ -109,10 +110,8 @@ static int show_config(const char *key_, const char *value_, void *cb)
|
|
|
|
|
return 0; |
|
|
|
|
|
|
|
|
|
if (show_keys) { |
|
|
|
|
if (value_) |
|
|
|
|
printf("%s%c", key_, key_delim); |
|
|
|
|
else |
|
|
|
|
printf("%s", key_); |
|
|
|
|
printf("%s", key_); |
|
|
|
|
must_print_delim = 1; |
|
|
|
|
} |
|
|
|
|
if (seen && !do_all) |
|
|
|
|
dup_error = 1; |
|
|
|
@ -130,16 +129,23 @@ static int show_config(const char *key_, const char *value_, void *cb)
@@ -130,16 +129,23 @@ static int show_config(const char *key_, const char *value_, void *cb)
|
|
|
|
|
} else if (types == TYPE_PATH) { |
|
|
|
|
git_config_pathname(&vptr, key_, value_); |
|
|
|
|
must_free_vptr = 1; |
|
|
|
|
} else if (value_) { |
|
|
|
|
vptr = value_; |
|
|
|
|
} else { |
|
|
|
|
/* Just show the key name */ |
|
|
|
|
vptr = ""; |
|
|
|
|
must_print_delim = 0; |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
vptr = value_?value_:""; |
|
|
|
|
seen++; |
|
|
|
|
if (dup_error) { |
|
|
|
|
error("More than one value for the key %s: %s", |
|
|
|
|
key_, vptr); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
else { |
|
|
|
|
if (must_print_delim) |
|
|
|
|
printf("%c", key_delim); |
|
|
|
|
printf("%s%c", vptr, term); |
|
|
|
|
} |
|
|
|
|
if (must_free_vptr) |
|
|
|
|
/* If vptr must be freed, it's a pointer to a |
|
|
|
|
* dynamically allocated buffer, it's safe to cast to |
|
|
|
|