Commit aed8f8a101872e8b4c81de788a5e675c67b50d20

Sven Strickroth 2012-09-24T18:02:47

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>

diff --git a/src/fileops.c b/src/fileops.c
index 8ccf063..d85ff7c 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");