James Hawkins : msi: Only read an internal package if the file to install is compressed.
Alexandre Julliard
julliard at winehq.org
Mon Jan 7 08:39:06 CST 2008
Module: wine
Branch: master
Commit: 4b4f737bfc24b0aae3add148584204b9a8acca95
URL: http://source.winehq.org/git/wine.git/?a=commit;h=4b4f737bfc24b0aae3add148584204b9a8acca95
Author: James Hawkins <truiken at gmail.com>
Date: Sat Jan 5 00:07:34 2008 -0600
msi: Only read an internal package if the file to install is compressed.
---
dlls/msi/files.c | 22 ++++++++++------------
1 files changed, 10 insertions(+), 12 deletions(-)
diff --git a/dlls/msi/files.c b/dlls/msi/files.c
index 442c73a..7e73b75 100644
--- a/dlls/msi/files.c
+++ b/dlls/msi/files.c
@@ -573,22 +573,20 @@ static UINT load_media_info(MSIPACKAGE *package, MSIFILE *file, struct media_inf
mi->first_volume = strdupW(mi->volume_label);
source_dir = msi_dup_property(package, cszSourceDir);
+ lstrcpyW(mi->source, source_dir);
- if (mi->cabinet && mi->cabinet[0] == '#')
+ if (file->IsCompressed && mi->cabinet)
{
- r = writeout_cabinet_stream(package, &mi->cabinet[1], mi->source);
- if (r != ERROR_SUCCESS)
+ if (mi->cabinet[0] == '#')
{
- ERR("Failed to extract cabinet stream\n");
- return ERROR_FUNCTION_FAILED;
+ r = writeout_cabinet_stream(package, &mi->cabinet[1], mi->source);
+ if (r != ERROR_SUCCESS)
+ {
+ ERR("Failed to extract cabinet stream\n");
+ return ERROR_FUNCTION_FAILED;
+ }
}
- }
- else
- {
- lstrcpyW(mi->source, source_dir);
-
-
- if (mi->cabinet)
+ else
lstrcatW(mi->source, mi->cabinet);
}
More information about the wine-cvs
mailing list