Add Windows support for host-/username
authorRoland Schulz <roland@utk.edu>
Sun, 19 Oct 2014 17:37:22 +0000 (13:37 -0400)
committerGerrit Code Review <gerrit@gerrit.gromacs.org>
Sun, 26 Oct 2014 09:16:49 +0000 (10:16 +0100)
Change-Id: I971ffc811bddea8c8663d3d1ce95678eddfd5860

src/gromacs/utility/sysinfo.cpp

index 65a3363fdfb203bb89cd77690c43350bb53d4f8d..cf7b6693ae25a073b586d89edf79ca62e379ea39 100644 (file)
@@ -53,6 +53,7 @@
 #include <sys/time.h>
 #endif
 #ifdef GMX_NATIVE_WINDOWS
+#include <Windows.h>
 #include <process.h>
 #endif
 #ifdef HAVE_PWD_H
@@ -74,7 +75,13 @@ const char c_unknown[] = "unknown";
 int gmx_gethostname(char *buf, size_t len)
 {
     GMX_RELEASE_ASSERT(len >= 8, "Input buffer is too short");
-#if defined(HAVE_UNISTD_H) && !defined(__native_client__) && !defined(__MINGW32__)
+#ifdef GMX_NATIVE_WINDOWS
+    DWORD  dlen = len;
+    if (GetComputerName(buf, &dlen))
+    {
+        return 0;
+    }
+#elif defined(HAVE_UNISTD_H) && !defined(__native_client__)
     if (gethostname(buf, len-1) == 0)
     {
         buf[len-1] = '\0';
@@ -108,7 +115,13 @@ int gmx_getusername(char *buf, size_t len)
     GMX_RELEASE_ASSERT(len >= 8, "Input buffer is too short");
     // TODO: nice_header() used getpwuid() instead; consider using getpwuid_r()
     // here.  If not, get rid of HAVE_PWD_H completely.
-#if defined(HAVE_UNISTD_H) && !defined(__MINGW32__)
+#ifdef GMX_NATIVE_WINDOWS
+    DWORD  dlen = len;
+    if (GetUserName(buf, &dlen))
+    {
+        return 0;
+    }
+#elif defined(HAVE_UNISTD_H)
     if (!getlogin_r(buf, len))
     {
         buf[len-1] = '\0';