Expand ~ and ~user in core.excludesfile, commit.template
These config variables are parsed to substitute ~ and ~user with getpw entries. user_path() refactored into new function expand_user_path(), to allow dynamically allocating the return buffer. Original patch by Karl Chen, modified by Matthieu Moy, and further amended by Junio C Hamano. Signed-off-by: Karl Chen <quarl@quarl.org> Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
78d553b7d7
commit
395de250d9
12
config.c
12
config.c
@ -351,6 +351,16 @@ int git_config_string(const char **dest, const char *var, const char *value)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int git_config_pathname(const char **dest, const char *var, const char *value)
|
||||
{
|
||||
if (!value)
|
||||
return config_error_nonbool(var);
|
||||
*dest = expand_user_path(value);
|
||||
if (!*dest)
|
||||
die("Failed to expand user dir in: '%s'", value);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int git_default_core_config(const char *var, const char *value)
|
||||
{
|
||||
/* This needs a better name */
|
||||
@ -474,7 +484,7 @@ static int git_default_core_config(const char *var, const char *value)
|
||||
return git_config_string(&editor_program, var, value);
|
||||
|
||||
if (!strcmp(var, "core.excludesfile"))
|
||||
return git_config_string(&excludes_file, var, value);
|
||||
return git_config_pathname(&excludes_file, var, value);
|
||||
|
||||
if (!strcmp(var, "core.whitespace")) {
|
||||
if (!value)
|
||||
|
Reference in New Issue
Block a user