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) ...@@ -270,8 +270,8 @@ static int config_set(git_config *cfg, const char *name, const char *value)
*/ */
existing = cvar_list_find(cfg->vars, name); existing = cvar_list_find(cfg->vars, name);
if (existing != NULL) { if (existing != NULL) {
char *tmp = git__strdup(value); char *tmp = value ? git__strdup(value) : NULL;
if (tmp == NULL) if (tmp == NULL && value != NULL)
return GIT_ENOMEM; return GIT_ENOMEM;
free(existing->value); free(existing->value);
...@@ -297,8 +297,8 @@ static int config_set(git_config *cfg, const char *name, const char *value) ...@@ -297,8 +297,8 @@ static int config_set(git_config *cfg, const char *name, const char *value)
goto out; goto out;
} }
var->value = git__strdup(value); var->value = value ? git__strdup(value) : NULL;
if(var->value == NULL){ if(var->value == NULL && value != NULL){
error = GIT_ENOMEM; error = GIT_ENOMEM;
cvar_free(var); cvar_free(var);
goto out; goto out;
...@@ -1060,6 +1060,9 @@ static int parse_variable(git_config *cfg, char **var_name, char **var_value) ...@@ -1060,6 +1060,9 @@ static int parse_variable(git_config *cfg, char **var_name, char **var_value)
} }
*var_value = tmp; *var_value = tmp;
} else {
/* If thre is no value, boolean true is assumed */
*var_value = NULL;
} }
out: 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