(resend) shell32: fix program search in ShellExecuteEx, quote program name if it contains spaces [3rd]
Stefan Leichter
Stefan.Leichter at camline.com
Fri Aug 21 06:48:20 CDT 2009
Am Friday 21 August 2009 11:37:56 schrieb Alexandre Julliard:
> 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.
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.
A possible way might be to create a recource from the second program, and
extract this during runtime, for winetest.
The source for this is attached. It misses the modifications to Makefile.in
and to fix the build dependencies, what i did not manage.
i give up here.
Stefan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ShellExecuteEx_tests.diff
Type: text/x-diff
Size: 9634 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20090821/c53f107d/attachment.diff>
More information about the wine-devel
mailing list