On Win9x lpTitle and STARTUPINFO.lpDesktop and STARTUPINFO.lpTitle are set to NULL, but on NT platforms lpDesktop is a string identifying the current desktop and lpTitle is the executable's name. Fortunately all we need to do to take this difference into account is make sure that the parent and child have the same value. Changelog: * dlls/kernel/tests/process.c #ifdef-out decodeW since it is not used yet Fix the lpDesktop and lpTitle checks on NT platforms Index: dlls/kernel/tests/process.c =================================================================== RCS file: /home/wine/wine/dlls/kernel/tests/process.c,v retrieving revision 1.6 diff -u -r1.6 process.c --- dlls/kernel/tests/process.c 18 Dec 2002 02:22:51 -0000 1.6 +++ dlls/kernel/tests/process.c 18 Dec 2002 02:45:08 -0000 @@ -106,6 +106,10 @@ return ptr; } +#if 0 +/* This will be needed to decode Unicode strings saved by the child process + * when we test Unicode functions. + */ static WCHAR* decodeW(const char* str) { size_t len; @@ -123,6 +127,7 @@ ptr[len] = '\0'; return ptr; } +#endif /****************************************************************** * init @@ -351,7 +356,7 @@ { char buffer[MAX_PATH]; PROCESS_INFORMATION info; - STARTUPINFOA startup; + STARTUPINFOA startup,si; /* let's start simplistic */ memset(&startup, 0, sizeof(startup)); @@ -367,9 +372,10 @@ /* child process has changed result file, so let profile functions know about it */ WritePrivateProfileStringA(NULL, NULL, NULL, resfile); + GetStartupInfoA(&si); okChildInt("StartupInfoA", "cb", startup.cb); - okChildString("StartupInfoA", "lpDesktop", startup.lpDesktop); - okChildString("StartupInfoA", "lpTitle", startup.lpTitle); + okChildString("StartupInfoA", "lpDesktop", si.lpDesktop); + okChildString("StartupInfoA", "lpTitle", si.lpTitle); okChildInt("StartupInfoA", "dwX", startup.dwX); okChildInt("StartupInfoA", "dwY", startup.dwY); okChildInt("StartupInfoA", "dwXSize", startup.dwXSize); @@ -444,7 +450,7 @@ WritePrivateProfileStringA(NULL, NULL, NULL, resfile); okChildInt("StartupInfoA", "cb", startup.cb); - okChildString("StartupInfoA", "lpDesktop", startup.lpDesktop); + okChildString("StartupInfoA", "lpDesktop", si.lpDesktop); okChildString("StartupInfoA", "lpTitle", startup.lpTitle); okChildInt("StartupInfoA", "dwX", startup.dwX); okChildInt("StartupInfoA", "dwY", startup.dwY); @@ -521,7 +527,7 @@ okChildInt("StartupInfoA", "cb", startup.cb); okChildString("StartupInfoA", "lpDesktop", startup.lpDesktop); - okChildString("StartupInfoA", "lpTitle", startup.lpTitle); + okChildString("StartupInfoA", "lpTitle", si.lpTitle); okChildInt("StartupInfoA", "dwX", startup.dwX); okChildInt("StartupInfoA", "dwY", startup.dwY); okChildInt("StartupInfoA", "dwXSize", startup.dwXSize); -- Francois Gouget fgouget@free.fr http://fgouget.free.fr/ Any sufficiently advanced Operating System is indistinguishable from Linux