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