Jelajahi Sumber

Look for USERPROFILE and the combination of HOMEDRIVE and HOMEPATH to
get user's home directory in MinGW32 build.

Usually HOME environment variable is defined in *nix like OSes, but
not in Windows. So in MinGW32 build, if HOME is not defined, we also
look for USERPROFILE and the combination of HOMEDRIVE and HOMEPATH.

Tatsuhiro Tsujikawa 14 tahun lalu
induk
melakukan
eb6a811279
1 mengubah file dengan 16 tambahan dan 0 penghapusan
  1. 16 0
      src/util.cc

+ 16 - 0
src/util.cc

@@ -986,6 +986,22 @@ std::string getHomeDir()
   if(p) {
     return p;
   } else {
+#ifdef __MINGW32__
+    p = getenv("USERPROFILE");
+    if(p) {
+      return p;
+    } else {
+      p = getenv("HOMEDRIVE");
+      if(p) {
+        std::string homeDir = p;
+        p = getenv("HOMEPATH");
+        if(p) {
+          homeDir += p;
+          return homeDir;
+        }
+      }
+    }
+#endif
     return A2STR::NIL;
   }
 }