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 <email@cs-ware.de>
This commit is contained in:
Sven Strickroth 2012-09-24 18:02:47 +02:00
parent 63f6c82568
commit aed8f8a101

View File

@ -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) int git_futils_find_global_file(git_buf *path, const char *filename)
{ {
const char *home = getenv("HOME");
#ifdef GIT_WIN32 #ifdef GIT_WIN32
struct win32_path root; 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 || if (win32_expand_path(&root, L"%USERPROFILE%\\") < 0 ||
root.path[0] == L'%') /* i.e. no expansion happened */ 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; return 0;
#else #else
const char *home = getenv("HOME");
if (home == NULL) { if (home == NULL) {
giterr_set(GITERR_OS, "Global file lookup failed. " giterr_set(GITERR_OS, "Global file lookup failed. "
"Cannot locate the user's home directory"); "Cannot locate the user's home directory");