From aed8f8a101872e8b4c81de788a5e675c67b50d20 Mon Sep 17 00:00:00 2001 From: Sven Strickroth Date: Mon, 24 Sep 2012 18:02:47 +0200 Subject: [PATCH] Honor %HOME% on windows Use %HOME% before trying to figure out the windows user directory. Users might set this as they are used on *nix systems. Signed-off-by: Sven Strickroth --- src/fileops.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/fileops.c b/src/fileops.c index 8ccf063d5..d85ff7c72 100644 --- a/src/fileops.c +++ b/src/fileops.c @@ -455,9 +455,20 @@ int git_futils_find_system_file(git_buf *path, const char *filename) int git_futils_find_global_file(git_buf *path, const char *filename) { + const char *home = getenv("HOME"); + #ifdef GIT_WIN32 struct win32_path root; + if (home != NULL) { + if (git_buf_joinpath(path, home, filename) < 0) + return -1; + + if (git_path_exists(path->ptr)) { + return 0; + } + } + if (win32_expand_path(&root, L"%USERPROFILE%\\") < 0 || root.path[0] == L'%') /* i.e. no expansion happened */ { @@ -473,8 +484,6 @@ int git_futils_find_global_file(git_buf *path, const char *filename) return 0; #else - const char *home = getenv("HOME"); - if (home == NULL) { giterr_set(GITERR_OS, "Global file lookup failed. " "Cannot locate the user's home directory");