Module: wine Branch: master Commit: ff3ed5f05145b708c04a4ebc7e54bca36f2dc824 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ff3ed5f05145b708c04a4ebc7e...
Author: Hans Leidekker hans@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);