diff options
authorJunio C Hamano <>2016-04-22 22:45:09 (GMT)
committerJunio C Hamano <>2016-04-22 22:45:09 (GMT)
commitfd9b37cfde7f0e109592da41a784291c7eb8cb94 (patch)
parent1c4f47690074de3c27c1a2124779bfe2898f295d (diff)
parent1cae428e2902b3f19a56625411f09cc239855fe7 (diff)
Merge branch 'jk/do-not-printf-NULL'
"git config" had a codepath that tried to pass a NULL to printf("%s"), which nobody seems to have noticed. * jk/do-not-printf-NULL: git_config_set_multivar_in_file: handle "unset" errors git_config_set_multivar_in_file: all non-zero returns are errors config: lower-case first word of error strings
1 files changed, 11 insertions, 7 deletions
diff --git a/config.c b/config.c
index 4c92699..10b5c95 100644
--- a/config.c
+++ b/config.c
@@ -108,7 +108,7 @@ static int handle_path_include(const char *path, struct config_include_data *inc
expanded = expand_user_path(path);
if (!expanded)
- return error("Could not expand include path '%s'", path);
+ return error("could not expand include path '%s'", path);
path = expanded;
@@ -950,7 +950,7 @@ static int git_default_branch_config(const char *var, const char *value)
else if (!strcmp(value, "always"))
- return error("Malformed value for %s", var);
+ return error("malformed value for %s", var);
return 0;
@@ -976,7 +976,7 @@ static int git_default_push_config(const char *var, const char *value)
else if (!strcmp(value, "current"))
push_default = PUSH_DEFAULT_CURRENT;
else {
- error("Malformed value for %s: %s", var, value);
+ error("malformed value for %s: %s", var, value);
return error("Must be one of nothing, matching, simple, "
"upstream or current.");
@@ -2217,9 +2217,13 @@ void git_config_set_multivar_in_file(const char *config_filename,
const char *key, const char *value,
const char *value_regex, int multi_replace)
- if (git_config_set_multivar_in_file_gently(config_filename, key, value,
- value_regex, multi_replace) < 0)
- die(_("Could not set '%s' to '%s'"), key, value);
+ if (!git_config_set_multivar_in_file_gently(config_filename, key, value,
+ value_regex, multi_replace))
+ return;
+ if (value)
+ die(_("could not set '%s' to '%s'"), key, value);
+ else
+ die(_("could not unset '%s'"), key);
int git_config_set_multivar_gently(const char *key, const char *value,
@@ -2400,7 +2404,7 @@ int git_config_rename_section(const char *old_name, const char *new_name)
#undef config_error_nonbool
int config_error_nonbool(const char *var)
- return error("Missing value for '%s'", var);
+ return error("missing value for '%s'", var);
int parse_config_key(const char *var,