(resend) shell32: fix program search in ShellExecuteEx, quote program name if it contains spaces [3rd]

Alexandre Julliard julliard at winehq.org
Fri Aug 21 04:37:56 CDT 2009


Stefan Leichter <Stefan.Leichter at 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.

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list