diff options
-rw-r--r-- | repo-config.c | 5 | ||||
-rwxr-xr-x | t/t1300-repo-config.sh | 8 |
2 files changed, 12 insertions, 1 deletions
diff --git a/repo-config.c b/repo-config.c index 9cf65193f9..c5ebb7668a 100644 --- a/repo-config.c +++ b/repo-config.c @@ -14,6 +14,9 @@ static enum { T_RAW, T_INT, T_BOOL } type = T_RAW; static int show_config(const char* key_, const char* value_) { + if (value_ == NULL) + value_ = ""; + if (!strcmp(key_, key) && (regexp == NULL || (do_not_match ^ @@ -35,7 +38,7 @@ static int show_config(const char* key_, const char* value_) sprintf(value, "%s", git_config_bool(key_, value_) ? "true" : "false"); } else { - value = strdup(value_ ? value_ : ""); + value = strdup(value_); } seen++; } diff --git a/t/t1300-repo-config.sh b/t/t1300-repo-config.sh index 207dd3de64..ab4dd5c4ce 100755 --- a/t/t1300-repo-config.sh +++ b/t/t1300-repo-config.sh @@ -247,5 +247,13 @@ EOF test_expect_success 'hierarchical section value' 'cmp .git/config expect' +cat > .git/config << EOF +[novalue] + variable +EOF + +test_expect_success 'get variable with no value' \ + 'git-repo-config --get novalue.variable ^$' + test_done |