Mike McCormack : msi:
Mark components with missing or outdated files as incomplete.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Oct 31 05:43:09 CST 2006
Module: wine
Branch: master
Commit: ddf0b593bb30beb2289dc1f49fc0cc88a67004fb
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ddf0b593bb30beb2289dc1f49fc0cc88a67004fb
Author: Mike McCormack <mike at 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;
More information about the wine-cvs
mailing list