http://bugs.winehq.org/show_bug.cgi?id=13838
--- Comment #28 from max@veneto.com 2008-07-02 18:32:41 --- Well, I think I've found it...
In dlls/msi/appsearch.c, the function ACTION_AppSearchReg() when looking for a path in registry just gets the path as-is. Its returned path is then used to set local properties as APPDATAFOLDER (among others...) which are then set without the trailing backslash.
I think the right stuff would be to add the trailing backslash inside Action_AppSearchReg() when required searched value is a directory :
---snip--- switch (type & 0x0f) { case msidbLocatorTypeDirectory:
====> HERE add the backslash to string... must reallocate string increasing size by one and copy it, if there's no better way.
rc = ACTION_SearchDirectory(package, sig, (LPWSTR)value, 0, appValue); break; case msidbLocatorTypeFileName: *appValue = strdupW((LPWSTR)value); break; ---snip---
Ciao
Max