Re: [PATCH v9 0/8] MR5342: shell32: fix some divergence with Windows in FindExecutable, ShellExecute, and PathResolve
Robbert van der Helm (@robbert-vdh) commented about dlls/shell32/shlexec.c:
wcmd = malloc(len * sizeof(WCHAR)); wcmdLen = len; } - lstrcpyW(wcmd, wszApplicationName); - if (sei_tmp.lpDirectory) - { - LPCWSTR searchPath[] = { - sei_tmp.lpDirectory, - NULL - }; - PathFindOnPathW(wcmd, searchPath); - } - retval = SHELL_quote_and_execute( wcmd, wszParameters, L"", - wszApplicationName, NULL, &sei_tmp,
The removal of this call seems to have the unintended side effect of breaking WoW64 Winelib loading. For instance, if `foo.exe.so` is a Winelib binary, and `wine` has been configured with `--with-wine64`, then `wine foo.exe.so` no longer works after this change. See Wine issue [#56483](https://bugs.winehq.org/show_bug.cgi?id=56483) for more details. I would fix this myself, but I'm lacking some context here. Do you happen to know why this change would affect the execution of Winelibs? I have not checked the specifics but the `.exe.so` file tends to not be in Wine's current directory, so the removal of `PathFindOnPathW` should be unrelated (unless its path resolving is specifically needed for this). -- https://gitlab.winehq.org/wine/wine/-/merge_requests/5342#note_66412
participants (1)
-
Robbert van der Helm (@robbert-vdh)