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