Re: (resend, 2nd) shell32: fix program search in ShellExecuteEx, quote program name if it contains spaces [2nd]
Stefan Leichter <Stefan.Leichter(a)camline.com> writes:
@@ -1711,28 +1713,29 @@ } 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)); + while((space=strchrW(buffer, ' '))) + { + int idx = space-buffer; buffer[idx] = '\0';
This will break the loop since you don't reset the buffer contents. Also the indentation is messed up, please fix your editor setup. -- Alexandre Julliard julliard(a)winehq.org
participants (1)
-
Alexandre Julliard