(resend, 2nd) shell32: fix program search in ShellExecuteEx, quote program name if it contains spaces [2nd]
Alexandre Julliard
julliard at winehq.org
Wed Aug 19 05:05:04 CDT 2009
Stefan Leichter <Stefan.Leichter at 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 at winehq.org
More information about the wine-devel
mailing list