Module: wine Branch: master Commit: 62dc9ca691ea1449dc217351dc6ea7f9ca33ce17 URL: http://source.winehq.org/git/wine.git/?a=commit;h=62dc9ca691ea1449dc217351dc...
Author: James Hawkins truiken@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");