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).