Stefan Leichter <stefan.leich...@camline.com> writes: > Am Friday 21 August 2009 11:37:56 schrieb Alexandre Julliard: >> Stefan Leichter <stefan.leich...@camline.com> writes: >> > @@ -1711,32 +1713,35 @@ >> > } >> > else >> > { >> > - /* If the executable name is not quoted, we have to use this search >> > loop here, + /* FIXME: what versions support this? Fails on >> > 2000/XP + If the executable name is not quoted, we have to >> > use this search loop here, that in CreateProcess() is not sufficient >> > because it does not handle shell links. */ WCHAR buffer[MAX_PATH], >> > xlpFile[MAX_PATH]; >> > - LPWSTR space, s; >> > + LPWSTR space; >> > >> > - LPWSTR beg = wszApplicationName/*sei_tmp.lpFile*/; >> > - for(s=beg; (space=strchrW(s, ' ')); s=space+1) { >> > - int idx = space-sei_tmp.lpFile; >> > - memcpy(buffer, sei_tmp.lpFile, idx * sizeof(WCHAR)); >> > + lstrcpynW(buffer, wszApplicationName, >> > sizeof(buffer)/sizeof(WCHAR)); + space = buffer + >> > strlenW(buffer); >> > + do >> >> Searching from the end doesn't look right. This would need a test case. > > This tests needs an additional program/binary, that does not need command > line > parameters (therefore shell32_test.exe can not be used), to be build in the > test directory.
What you need to test is things like "test file.exe two.exe" where both exe files exist. I don't see why you can't pass arguments too, you just have to make the child a bit smarter to ignore args like "two.exe". -- Alexandre Julliard julli...@winehq.org