diff options
author | Russell Belfer <rb@github.com> | 2013-08-08 12:57:13 -0700 |
---|---|---|
committer | Russell Belfer <rb@github.com> | 2013-08-08 12:57:13 -0700 |
commit | 7f7ebe13c458217dcae419914dd15b434f513373 (patch) | |
tree | 86b4483cca59656ba2684bc7c733da910c1d24c3 | |
parent | 5e96f31638fe71a0c76805b1352f437881791d98 (diff) | |
parent | c57f668268744cbccb13c30095a0c1649fb18a63 (diff) | |
download | libgit2-7f7ebe13c458217dcae419914dd15b434f513373.tar.gz |
Merge pull request #1771 from nvloff/write_empty_config_value
config: allow setting empty string as value
-rw-r--r-- | src/config_file.c | 3 | ||||
-rw-r--r-- | tests-clar/config/write.c | 17 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/config_file.c b/src/config_file.c index 570f286c8..1d7b4fb38 100644 --- a/src/config_file.c +++ b/src/config_file.c @@ -1304,6 +1304,9 @@ static char *escape_value(const char *ptr) assert(ptr); len = strlen(ptr); + if (!len) + return git__calloc(1, sizeof(char)); + git_buf_grow(&buf, len); while (*ptr != '\0') { diff --git a/tests-clar/config/write.c b/tests-clar/config/write.c index d70612a97..57b02a7d9 100644 --- a/tests-clar/config/write.c +++ b/tests-clar/config/write.c @@ -242,3 +242,20 @@ void test_config_write__can_set_a_value_to_NULL(void) cl_git_sandbox_cleanup(); } + +void test_config_write__can_set_an_empty_value(void) +{ + git_repository *repository; + git_config *config; + const char * str; + + repository = cl_git_sandbox_init("testrepo.git"); + cl_git_pass(git_repository_config(&config, repository)); + + cl_git_pass(git_config_set_string(config, "core.somevar", "")); + cl_git_pass(git_config_get_string(&str, config, "core.somevar")); + cl_assert_equal_s(str, ""); + + git_config_free(config); + cl_git_sandbox_cleanup(); +} |