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
This commit is contained in:
Junio C Hamano 2016-04-22 15:45:09 -07:00
Родитель 1c4f476900 1cae428e29
Коммит fd9b37cfde
1 изменённых файлов: 11 добавлений и 7 удалений

Просмотреть файл

@ -108,7 +108,7 @@ static int handle_path_include(const char *path, struct config_include_data *inc
expanded = expand_user_path(path); expanded = expand_user_path(path);
if (!expanded) if (!expanded)
return error("Could not expand include path '%s'", path); return error("could not expand include path '%s'", path);
path = expanded; path = expanded;
/* /*
@ -950,7 +950,7 @@ static int git_default_branch_config(const char *var, const char *value)
else if (!strcmp(value, "always")) else if (!strcmp(value, "always"))
autorebase = AUTOREBASE_ALWAYS; autorebase = AUTOREBASE_ALWAYS;
else else
return error("Malformed value for %s", var); return error("malformed value for %s", var);
return 0; return 0;
} }
@ -976,7 +976,7 @@ static int git_default_push_config(const char *var, const char *value)
else if (!strcmp(value, "current")) else if (!strcmp(value, "current"))
push_default = PUSH_DEFAULT_CURRENT; push_default = PUSH_DEFAULT_CURRENT;
else { 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, " return error("Must be one of nothing, matching, simple, "
"upstream or current."); "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 *key, const char *value,
const char *value_regex, int multi_replace) const char *value_regex, int multi_replace)
{ {
if (git_config_set_multivar_in_file_gently(config_filename, key, value, if (!git_config_set_multivar_in_file_gently(config_filename, key, value,
value_regex, multi_replace) < 0) value_regex, multi_replace))
die(_("Could not set '%s' to '%s'"), key, value); 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, 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 #undef config_error_nonbool
int config_error_nonbool(const char *var) 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, int parse_config_key(const char *var,