Commit 2470be13 by Carlos Martín Nieto

config: variable name on its own means true

If a variable name appears on its own in a line, it's assumed the
value is true. Store the variable name as NULL in that case.

Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
parent 0bf8ca88
......@@ -270,8 +270,8 @@ static int config_set(git_config *cfg, const char *name, const char *value)
*/
existing = cvar_list_find(cfg->vars, name);
if (existing != NULL) {
char *tmp = git__strdup(value);
if (tmp == NULL)
char *tmp = value ? git__strdup(value) : NULL;
if (tmp == NULL && value != NULL)
return GIT_ENOMEM;
free(existing->value);
......@@ -297,8 +297,8 @@ static int config_set(git_config *cfg, const char *name, const char *value)
goto out;
}
var->value = git__strdup(value);
if(var->value == NULL){
var->value = value ? git__strdup(value) : NULL;
if(var->value == NULL && value != NULL){
error = GIT_ENOMEM;
cvar_free(var);
goto out;
......@@ -1060,6 +1060,9 @@ static int parse_variable(git_config *cfg, char **var_name, char **var_value)
}
*var_value = tmp;
} else {
/* If thre is no value, boolean true is assumed */
*var_value = NULL;
}
out:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment