Commit f464b7d2 authored by Hans Leidekker's avatar Hans Leidekker Committed by Alexandre Julliard

msi: Don't resolve child folders if the target path doesn't change in MsiSetTargetPath.

parent 01433f0f
......@@ -549,17 +549,23 @@ static void set_target_path( MSIPACKAGE *package, MSIFOLDER *folder, const WCHAR
{
FolderList *fl;
MSIFOLDER *child;
WCHAR *target_path;
msi_free( folder->ResolvedTarget );
folder->ResolvedTarget = strdupW( path );
msi_clean_path( folder->ResolvedTarget );
msi_set_property( package->db, folder->Directory, folder->ResolvedTarget );
LIST_FOR_EACH_ENTRY( fl, &folder->children, FolderList, entry )
if (!(target_path = strdupW( path ))) return;
msi_clean_path( target_path );
if (strcmpW( target_path, folder->ResolvedTarget ))
{
child = fl->folder;
msi_resolve_target_folder( package, child->Directory, FALSE );
msi_free( folder->ResolvedTarget );
folder->ResolvedTarget = target_path;
msi_set_property( package->db, folder->Directory, folder->ResolvedTarget );
LIST_FOR_EACH_ENTRY( fl, &folder->children, FolderList, entry )
{
child = fl->folder;
msi_resolve_target_folder( package, child->Directory, FALSE );
}
}
else msi_free( target_path );
}
UINT MSI_SetTargetPathW( MSIPACKAGE *package, LPCWSTR szFolder, LPCWSTR szFolderPath )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment