Module: wine Branch: master Commit: ddf0b593bb30beb2289dc1f49fc0cc88a67004fb URL: http://source.winehq.org/git/wine.git/?a=commit;h=ddf0b593bb30beb2289dc1f49f...
Author: Mike McCormack mike@codeweavers.com Date: Tue Oct 31 14:32:48 2006 +0900
msi: Mark components with missing or outdated files as incomplete.
---
dlls/msi/action.c | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/dlls/msi/action.c b/dlls/msi/action.c index 7cfd74d..c349a94 100644 --- a/dlls/msi/action.c +++ b/dlls/msi/action.c @@ -2005,10 +2005,19 @@ static UINT ACTION_CostFinalize(MSIPACKA TRACE("file %s resolves to %s\n", debugstr_w(file->File), debugstr_w(file->TargetPath));
+ /* don't check files of components that aren't installed */ + if (comp->Installed == INSTALLSTATE_UNKNOWN || + comp->Installed == INSTALLSTATE_ABSENT) + { + file->state = msifs_missing; /* assume files are missing */ + continue; + } + if (GetFileAttributesW(file->TargetPath) == INVALID_FILE_ATTRIBUTES) { file->state = msifs_missing; comp->Cost += file->FileSize; + comp->Installed = INSTALLSTATE_INCOMPLETE; continue; }
@@ -2022,6 +2031,7 @@ static UINT ACTION_CostFinalize(MSIPACKA { file->state = msifs_overwrite; comp->Cost += file->FileSize; + comp->Installed = INSTALLSTATE_INCOMPLETE; } else file->state = msifs_present;