Module: wine Branch: master Commit: 9d68804379b7940b1500cdf802b52b03e0100765 URL: http://source.winehq.org/git/wine.git/?a=commit;h=9d68804379b7940b1500cdf802...
Author: Hans Leidekker hans@codeweavers.com Date: Wed Aug 24 10:22:33 2011 +0200
msi: Resolve the target folder if necessary when building link filenames.
---
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 );