[3/3] msi: Resolve the target folder if necessary when building link filenames.
Hans Leidekker
hans at codeweavers.com
Wed Aug 24 03:22:33 CDT 2011
Fixes http://bugs.winehq.org/show_bug.cgi?id=27834
---
dlls/msi/action.c | 12 +++++++++++-
1 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/dlls/msi/action.c b/dlls/msi/action.c
index d008777..fa92653 100644
--- a/dlls/msi/action.c
+++ b/dlls/msi/action.c
@@ -3518,7 +3518,17 @@ static WCHAR *get_link_file( MSIPACKAGE *package, MSIRECORD *row )
directory = MSI_RecordGetString( row, 2 );
link_folder = msi_get_target_folder( package, directory );
-
+ if (!link_folder)
+ {
+ /* some installers use a separate root */
+ MSIFOLDER *folder = msi_get_loaded_folder( package, directory );
+ while (folder->Parent && strcmpW( folder->Parent, folder->Directory ))
+ {
+ folder = msi_get_loaded_folder( package, folder->Parent );
+ }
+ msi_resolve_target_folder( package, folder->Directory, TRUE );
+ link_folder = msi_get_target_folder( package, directory );
+ }
/* may be needed because of a bug somewhere else */
msi_create_full_path( link_folder );
--
1.7.4.1
More information about the wine-patches
mailing list