James Hawkins : msi: Base removal of a file on the component's action, not the file's state.

Alexandre Julliard julliard at winehq.org
Tue Aug 19 08:46:51 CDT 2008


Module: wine
Branch: master
Commit: 10a2a5effeabfa60855f90873bf4c577c07225b0
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=10a2a5effeabfa60855f90873bf4c577c07225b0

Author: James Hawkins <jhawkins at codeweavers.com>
Date:   Mon Aug 18 23:13:43 2008 -0500

msi: Base removal of a file on the component's action, not the file's state.

---

 dlls/msi/files.c         |    2 +-
 dlls/msi/tests/install.c |   22 +++++++++++++++++-----
 2 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/dlls/msi/files.c b/dlls/msi/files.c
index f826806..3c8ac60 100644
--- a/dlls/msi/files.c
+++ b/dlls/msi/files.c
@@ -537,7 +537,7 @@ UINT ACTION_RemoveFiles( MSIPACKAGE *package )
         if ( file->state == msifs_installed )
             ERR("removing installed file %s\n", debugstr_w(file->TargetPath));
 
-        if ( file->state != msifs_present )
+        if ( file->Component->ActionRequest != INSTALLSTATE_ABSENT )
             continue;
 
         /* don't remove a file if the old file
diff --git a/dlls/msi/tests/install.c b/dlls/msi/tests/install.c
index a60b3ab..390d481 100644
--- a/dlls/msi/tests/install.c
+++ b/dlls/msi/tests/install.c
@@ -3199,7 +3199,10 @@ static void test_publish(void)
 
     r = MsiInstallProductA(msifile, "FULL=1 REMOVE=ALL");
     ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
-    ok(pf_exists("msitest\\maximus"), "File deleted\n");
+    todo_wine
+    {
+        ok(pf_exists("msitest\\maximus"), "File deleted\n");
+    }
     ok(pf_exists("msitest"), "File deleted\n");
 
     state = MsiQueryProductState("{7DF88A48-996F-4EC8-A022-BF956F9B2CBB}");
@@ -4168,7 +4171,10 @@ static void test_removefiles(void)
     ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
     ok(!pf_exists("msitest\\hydrogen"), "File not deleted\n");
     ok(!pf_exists("msitest\\helium"), "File not deleted\n");
-    ok(delete_pf("msitest\\lithium", TRUE), "File deleted\n");
+    todo_wine
+    {
+        ok(delete_pf("msitest\\lithium", TRUE), "File deleted\n");
+    }
     ok(delete_pf("msitest", FALSE), "File deleted\n");
 
     create_pf("msitest", FALSE);
@@ -4186,8 +4192,11 @@ static void test_removefiles(void)
     r = MsiInstallProductA(msifile, "REMOVE=ALL");
     ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
     ok(!pf_exists("msitest\\hydrogen"), "File not deleted\n");
-    ok(delete_pf("msitest\\helium", TRUE), "File deleted\n");
-    ok(delete_pf("msitest\\lithium", TRUE), "File deleted\n");
+    todo_wine
+    {
+        ok(delete_pf("msitest\\helium", TRUE), "File deleted\n");
+        ok(delete_pf("msitest\\lithium", TRUE), "File deleted\n");
+    }
     ok(delete_pf("msitest", FALSE), "File deleted\n");
 
     create_pf("msitest", FALSE);
@@ -4228,7 +4237,10 @@ static void test_removefiles(void)
     ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
     ok(!delete_pf("msitest\\hydrogen", TRUE), "File not deleted\n");
     ok(!delete_pf("msitest\\helium", TRUE), "File not deleted\n");
-    ok(delete_pf("msitest\\lithium", TRUE), "File deleted\n");
+    todo_wine
+    {
+        ok(delete_pf("msitest\\lithium", TRUE), "File deleted\n");
+    }
     ok(delete_pf("msitest\\furlong", TRUE), "File deleted\n");
     ok(delete_pf("msitest\\firkin", TRUE), "File deleted\n");
     ok(delete_pf("msitest\\fortnight", TRUE), "File deleted\n");




More information about the wine-cvs mailing list