James Hawkins : msi: Extract cabinets based on DiskId, not LastSequence.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Oct 27 05:49:25 CDT 2006


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

Author: James Hawkins <truiken at gmail.com>
Date:   Fri Oct 27 00:42:14 2006 -0700

msi: Extract cabinets based on DiskId, not LastSequence.

---

 dlls/msi/files.c         |    7 ++++++-
 dlls/msi/tests/install.c |   16 ++++++++--------
 2 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/dlls/msi/files.c b/dlls/msi/files.c
index 7eec8a2..2f68467 100644
--- a/dlls/msi/files.c
+++ b/dlls/msi/files.c
@@ -458,7 +458,7 @@ static UINT ready_media_for_file( MSIPAC
          '`','M','e','d','i','a','`',' ','W','H','E','R','E',' ',
          '`','L','a','s','t','S','e','q','u','e','n','c','e','`',' ','>','=',
          ' ','%', 'i',' ','O','R','D','E','R',' ','B','Y',' ',
-         '`','L','a','s','t','S','e','q','u','e','n','c','e','`',0};
+         '`','D','i','s','k','I','d','`',0};
     LPCWSTR cab, volume;
     DWORD sz;
     INT seq;
@@ -700,8 +700,13 @@ UINT ACTION_InstallFiles(MSIPACKAGE *pac
         if (file->IsCompressed)
         {
             if (INVALID_FILE_ATTRIBUTES == GetFileAttributesW(file->TargetPath))
+            {
                 ERR("compressed file wasn't extracted (%s)\n",
                     debugstr_w(file->TargetPath));
+                rc = ERROR_INSTALL_FAILURE;
+                break;
+            }
+
             continue;
         }
 
diff --git a/dlls/msi/tests/install.c b/dlls/msi/tests/install.c
index 70edf11..01d0615 100644
--- a/dlls/msi/tests/install.c
+++ b/dlls/msi/tests/install.c
@@ -839,13 +839,13 @@ static void test_caborder(void)
     create_cab_file("test2.cab", MEDIA_SIZE, "augustus\0");
 
     r = MsiInstallProductA(msifile, NULL);
+    ok(r == ERROR_INSTALL_FAILURE, "Expected ERROR_INSTALL_FAILURE, got %u\n", r);
+    ok(!delete_pf("msitest\\augustus", TRUE), "File is installed\n");
     todo_wine
     {
-        ok(r == ERROR_INSTALL_FAILURE, "Expected ERROR_INSTALL_FAILURE, got %u\n", r);
-        ok(!delete_pf("msitest\\augustus", TRUE), "File is installed\n");
-        ok(!delete_pf("msitest", FALSE), "File is installed\n");
+    	ok(!delete_pf("msitest\\maximus", TRUE), "File is installed\n");
+    	ok(!delete_pf("msitest", FALSE), "File is installed\n");
     }
-    ok(!delete_pf("msitest\\maximus", TRUE), "File is installed\n");
 
     DeleteFile("test1.cab");
     DeleteFile("test2.cab");
@@ -854,12 +854,12 @@ static void test_caborder(void)
     create_cab_file("test2.cab", MEDIA_SIZE, "maximus\0augustus\0");
 
     r = MsiInstallProductA(msifile, NULL);
+    ok(r == ERROR_INSTALL_FAILURE, "Expected ERROR_INSTALL_FAILURE, got %u\n", r);
+    ok(!delete_pf("msitest\\maximus", TRUE), "File is installed\n");
+    ok(!delete_pf("msitest\\augustus", TRUE), "File is installed\n");
     todo_wine
     {
-        ok(r == ERROR_INSTALL_FAILURE, "Expected ERROR_INSTALL_FAILURE, got %u\n", r);
-        ok(!delete_pf("msitest\\maximus", TRUE), "File is installed\n");
-        ok(!delete_pf("msitest\\augustus", TRUE), "File is installed\n");
-        ok(!delete_pf("msitest", FALSE), "File is installed\n");
+    	ok(!delete_pf("msitest", FALSE), "File is installed\n");
     }
 
     DeleteFile("test1.cab");




More information about the wine-cvs mailing list