diff options
author | Matthieu Moy <Matthieu.Moy@imag.fr> | 2009-11-17 18:24:25 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-11-17 21:53:11 -0800 |
commit | 395de250d9d9762b8ac1ce98b297d60d0b5bd643 (patch) | |
tree | 6cd72d671e9ec56fdc87fa0c21484881b5a2ab00 /config.c | |
parent | GIT 1.6.5 (diff) | |
download | tgif-395de250d9d9762b8ac1ce98b297d60d0b5bd643.tar.xz |
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>
Diffstat (limited to 'config.c')
-rw-r--r-- | config.c | 12 |
1 files changed, 11 insertions, 1 deletions
@@ -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) |