Commit f2b126c76e858be1794c41f9e624ad0d3529432e

Sven Strickroth 2012-09-25T00:33:53

Implemented the full msysgit fallback chain Signed-off-by: Sven Strickroth <email@cs-ware.de>

diff --git a/src/fileops.c b/src/fileops.c
index b9044f0..a62967d 100644
--- a/src/fileops.c
+++ b/src/fileops.c
@@ -493,11 +493,20 @@ int git_futils_find_global_file(git_buf *path, const char *filename)
 		}
 	}
 
-	if (win32_expand_path(&root, L"%HOMEDRIVE%\\%HOMEPATH%\\") < 0 ||
-		root.path[0] == L'%') /* i.e. no expansion happened */
-	{
-		giterr_set(GITERR_OS, "Cannot locate the user's profile directory");
-		return -1;
+	if (getenv("HOMEPATH") != NULL) {
+		if (win32_expand_path(&root, L"%HOMEDRIVE%%HOMEPATH%\\") < 0 ||
+			root.path[0] == L'%') /* i.e. no expansion happened */
+		{
+			giterr_set(GITERR_OS, "Cannot locate the user's profile directory");
+			return -1;
+		}
+	} else {
+		if (win32_expand_path(&root, L"%USERPROFILE%\\") < 0 ||
+			root.path[0] == L'%') /* i.e. no expansion happened */
+		{
+			giterr_set(GITERR_OS, "Cannot locate the user's profile directory");
+			return -1;
+		}
 	}
 
 	if (win32_find_file(path, &root, filename) < 0) {