Hans Leidekker : msi: Look at the requested action when moving files, not the action taken.
Alexandre Julliard
julliard at winehq.org
Tue Mar 2 10:32:35 CST 2010
Module: wine
Branch: master
Commit: ff3ed5f05145b708c04a4ebc7e54bca36f2dc824
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ff3ed5f05145b708c04a4ebc7e54bca36f2dc824
Author: Hans Leidekker <hans at codeweavers.com>
Date: Tue Mar 2 14:57:14 2010 +0100
msi: Look at the requested action when moving files, not the action taken.
---
dlls/msi/action.c | 15 ++++++++++-----
1 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/dlls/msi/action.c b/dlls/msi/action.c
index 278d479..879a013 100644
--- a/dlls/msi/action.c
+++ b/dlls/msi/action.c
@@ -6115,7 +6115,7 @@ static UINT ITERATE_MoveFiles( MSIRECORD *rec, LPVOID param )
{
MSIPACKAGE *package = param;
MSICOMPONENT *comp;
- LPCWSTR sourcename;
+ LPCWSTR sourcename, component;
LPWSTR destname = NULL;
LPWSTR sourcedir = NULL, destdir = NULL;
LPWSTR source = NULL, dest = NULL;
@@ -6123,13 +6123,18 @@ static UINT ITERATE_MoveFiles( MSIRECORD *rec, LPVOID param )
DWORD size;
BOOL ret, wildcards;
- comp = get_loaded_component(package, MSI_RecordGetString(rec, 2));
- if (!comp || !comp->Enabled ||
- !(comp->Action & (INSTALLSTATE_LOCAL | INSTALLSTATE_SOURCE)))
+ component = MSI_RecordGetString(rec, 2);
+ comp = get_loaded_component(package, component);
+ if (!comp)
+ return ERROR_SUCCESS;
+
+ if (comp->ActionRequest != INSTALLSTATE_LOCAL && comp->ActionRequest != INSTALLSTATE_SOURCE)
{
- TRACE("Component not set for install, not moving file\n");
+ TRACE("Component not scheduled for installation: %s\n", debugstr_w(component));
+ comp->Action = comp->Installed;
return ERROR_SUCCESS;
}
+ comp->Action = comp->ActionRequest;
sourcename = MSI_RecordGetString(rec, 3);
options = MSI_RecordGetInteger(rec, 7);
More information about the wine-cvs
mailing list