Index: user_home.c
===================================================================
RCS file: /cvsroot/gnustep/gnustep/core/make/user_home.c,v
retrieving revision 1.12
diff -u -r1.12 user_home.c
--- user_home.c	22 Jul 2003 05:34:14 -0000	1.12
+++ user_home.c	6 Nov 2003 00:40:26 -0000
@@ -121,36 +121,11 @@
       /* The GetUserName function returns the current user name */
       DWORD	n = 1024;
 
-      len0 = GetEnvironmentVariable("LOGNAME", buf0, 1024);
-      if (len0 > 0 && len0 < 1024)
-	{
-	  loginName = buf0;
-	  loginName[len0] = '\0';
-	}
-      else if (GetUserName(buf0, &n))
-	{
+      if (GetUserName(buf0, &n))
 	  loginName = buf0;
-	}
+      else if (GetEnvironmentVariable("LOGNAME",buf0,1024) != 0 && buf0[0] != '\0')
+             loginName = buf0;
 #else
-      loginName = getenv("LOGNAME");
-#if	HAVE_GETPWNAM
-      /*
-       * Check that LOGNAME contained legal name.
-       */
-      if (loginName != 0 && getpwnam(loginName) == 0)
-	{
-	  loginName = 0;
-	}
-#endif	/* HAVE_GETPWNAM */
-#if	HAVE_GETLOGIN
-      /*
-       * Try getlogin() if LOGNAME environmentm variable didn't work.
-       */
-      if (loginName == 0)
-	{
-	  loginName = getlogin();
-	}
-#endif	/* HAVE_GETLOGIN */
 #if HAVE_GETPWUID
       /*
        * Try getting the name of the effective user as a last resort.
@@ -166,6 +141,29 @@
 	  loginName = pwent->pw_name;
 	}
 #endif /* HAVE_GETPWUID */
+      if (loginName == 0)
+	{
+	  loginName = getenv("LOGNAME");
+	}
+#if     HAVE_GETPWNAM
+      /*
+       * Check that LOGNAME contained legal name.
+       */
+      if (loginName != 0 && getpwnam(loginName) == 0)
+        {
+          loginName = 0;
+        }
+#endif  /* HAVE_GETPWNAM */
+#if     HAVE_GETLOGIN
+      /*
+       * Try getlogin() if LOGNAME environmentm variable didn't work.
+       */
+      if (loginName == 0)
+        {
+          loginName = getlogin();
+        }
+#endif  /* HAVE_GETLOGIN */
+
 #endif
       if (loginName == 0)
 	{
