From e7cfeb6cd5d53a8708455680c13fd4c5f61bc78e Mon Sep 17 00:00:00 2001
From: Buster <rcopley@gmail.com>
Date: Sat, 26 Oct 2019 12:15:37 +0100
Subject: [PATCH] W32: Always check $USERPROFILE if $HOME is not set

---
 gdb/auto-load.c            |  4 ++++
 gdb/gdbsupport/pathstuff.c |  4 ++++
 gdb/main.c                 |  4 ++++
 gdb/windows-nat.c          |  4 ++++
 gnulib/import/glob.c       | 24 +++---------------------
 5 files changed, 19 insertions(+), 21 deletions(-)

diff --git a/gdb/auto-load.c b/gdb/auto-load.c
index 5a9f47f078..8575ea1ecf 100644
--- a/gdb/auto-load.c
+++ b/gdb/auto-load.c
@@ -499,6 +499,10 @@ file_is_auto_load_safe (const char *filename, const char *debug_fmt, ...)
   if (!advice_printed)
     {
       const char *homedir = getenv ("HOME");
+#ifdef _WIN32
+      if (homedir == NULL)
+        homedir = getenv ("USERPROFILE");
+#endif
 
       if (homedir == NULL)
 	homedir = "$HOME";
diff --git a/gdb/gdbsupport/pathstuff.c b/gdb/gdbsupport/pathstuff.c
index f9882a2635..a90587103c 100644
--- a/gdb/gdbsupport/pathstuff.c
+++ b/gdb/gdbsupport/pathstuff.c
@@ -231,6 +231,10 @@ get_standard_cache_dir ()
 #endif
 
   const char *home = getenv ("HOME");
+#ifdef _WIN32
+  if (home == NULL)
+    home = getenv ("USERPROFILE");
+#endif
   if (home != NULL)
     {
       /* Make sure the path is absolute and tilde-expanded.  */
diff --git a/gdb/main.c b/gdb/main.c
index 66a9e6a6d2..2a7228f20c 100644
--- a/gdb/main.c
+++ b/gdb/main.c
@@ -300,6 +300,10 @@ get_init_files (std::vector<std::string> *system_gdbinit,
 	}
 
       const char *homedir = getenv ("HOME");
+#ifdef _WIN32
+      if (homedir == NULL)
+        homedir = getenv ("USERPROFILE");
+#endif
 
       /* If the .gdbinit file in the current directory is the same as
 	 the $HOME/.gdbinit file, it should not be sourced.  homebuf
diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c
index 31a5cabfb3..e60298ff60 100644
--- a/gdb/windows-nat.c
+++ b/gdb/windows-nat.c
@@ -3201,6 +3201,10 @@ _initialize_check_for_gdb_ini (void)
     return;
 
   homedir = getenv ("HOME");
+#ifdef _WIN32
+  if (homedir == NULL)
+    homedir = getenv ("USERPROFILE");
+#endif
   if (homedir)
     {
       char *p;
diff --git a/gnulib/import/glob.c b/gnulib/import/glob.c
index 416d210b63..77888277db 100644
--- a/gnulib/import/glob.c
+++ b/gnulib/import/glob.c
@@ -663,27 +663,9 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
           if (home_dir == NULL || home_dir[0] == '\0')
             home_dir = "SYS:";
 # else
-#  ifdef WINDOWS32
-          /* Windows NT defines HOMEDRIVE and HOMEPATH.  But give preference
-             to HOME, because the user can change HOME.  */
-          if (home_dir == NULL || home_dir[0] == '\0')
-            {
-              const char *home_drive = getenv ("HOMEDRIVE");
-              const char *home_path = getenv ("HOMEPATH");
-
-              if (home_drive != NULL && home_path != NULL)
-                {
-                  size_t home_drive_len = strlen (home_drive);
-                  size_t home_path_len = strlen (home_path);
-                  char *mem = alloca (home_drive_len + home_path_len + 1);
-
-                  memcpy (mem, home_drive, home_drive_len);
-                  memcpy (mem + home_drive_len, home_path, home_path_len + 1);
-                  home_dir = mem;
-                }
-              else
-                home_dir = "c:/users/default"; /* poor default */
-            }
+#  ifdef _WIN32
+          if (home_dir== NULL || home_dir[0] == '\0')
+            home_dir = getenv ("USERPROFILE");
 #  else
           if (home_dir == NULL || home_dir[0] == '\0')
             {
-- 
2.25.0.windows.1

