diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-10-17 21:37:12 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-10-17 21:37:12 -0700 |
commit | e22bb14d8064fe86e956ae500548d4365035f6b2 (patch) | |
tree | ff2983ffda5eaedec6d58742bc53bb29ea6380c4 | |
parent | Merge branch 'tc/fetch-leak' (diff) | |
parent | config: display key_delim for config --bool --get-regexp (diff) | |
download | tgif-e22bb14d8064fe86e956ae500548d4365035f6b2.tar.xz |
Merge branch 'mm/maint-config-explicit-bool-display'
* mm/maint-config-explicit-bool-display:
config: display key_delim for config --bool --get-regexp
-rw-r--r-- | builtin/config.c | 20 | ||||
-rwxr-xr-x | t/t1300-repo-config.sh | 6 |
2 files changed, 19 insertions, 7 deletions
diff --git a/builtin/config.c b/builtin/config.c index 0b4ecac855..0315ad76f8 100644 --- a/builtin/config.c +++ b/builtin/config.c @@ -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) 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) } 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 diff --git a/t/t1300-repo-config.sh b/t/t1300-repo-config.sh index 3e140c18f4..dffccf84f8 100755 --- a/t/t1300-repo-config.sh +++ b/t/t1300-repo-config.sh @@ -333,6 +333,12 @@ test_expect_success 'get-regexp variable with no value' \ 'git config --get-regexp novalue > output && cmp output expect' +echo 'novalue.variable true' > expect + +test_expect_success 'get-regexp --bool variable with no value' \ + 'git config --bool --get-regexp novalue > output && + cmp output expect' + echo 'emptyvalue.variable ' > expect test_expect_success 'get-regexp variable with empty value' \ |