--- passwd.c-orig Tue Jun 11 20:13:51 2002 +++ passwd.c Tue Jun 11 19:59:17 2002 @@ -16,6 +16,7 @@ details. */ #include #include #include +#include #include #include @@ -107,9 +108,21 @@ GetPW (const char *user) WCHAR name[512]; DWORD ret; PUSER_INFO_3 ui; - + struct passwd *pw; + char *domain = (char *) malloc (MAX_PATH + 1); + MultiByteToWideChar (CP_ACP, 0, user, -1, name, 512); ret = NetUserGetInfo (NULL, name, 3, (LPBYTE *) &ui); + /* Try getting a Win32 username in case the user edited /etc/passwd */ + if (ret == NERR_UserNotFound) + { + if ((pw = getpwnam (user))) + cygwin_internal (CW_EXTRACT_DOMAIN_AND_USER, pw, domain, (char *) user); + MultiByteToWideChar (CP_ACP, 0, user, -1, name, 512); + ret = NetUserGetInfo (NULL, name, 3, (LPBYTE *) &ui); + if (ret == (int) NULL) + printf ("Windows username : %s\n", user); + } return EvalRet (ret, user) ? NULL : ui; }