msi: Restrict the match on files from cabinets to files that have not been installed.

Hans Leidekker hans at codeweavers.com
Fri Mar 16 10:13:30 CDT 2012


Fixes http://bugs.winehq.org/show_bug.cgi?id=30182
---
 dlls/msi/files.c |    2 +-
 dlls/msi/media.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/dlls/msi/files.c b/dlls/msi/files.c
index e928564..e3a12c3 100644
--- a/dlls/msi/files.c
+++ b/dlls/msi/files.c
@@ -253,7 +253,7 @@ static MSIFILE *find_file( MSIPACKAGE *package, const WCHAR *filename )
 
     LIST_FOR_EACH_ENTRY( file, &package->files, MSIFILE, entry )
     {
-        if (!strcmpiW( filename, file->File )) return file;
+        if (file->state != msifs_installed && !strcmpiW( filename, file->File )) return file;
     }
     return NULL;
 }
diff --git a/dlls/msi/media.c b/dlls/msi/media.c
index 69bcb91..0199178 100644
--- a/dlls/msi/media.c
+++ b/dlls/msi/media.c
@@ -428,7 +428,7 @@ static INT_PTR cabinet_copy_file(FDINOTIFICATIONTYPE fdint,
         goto done;
     }
 
-    TRACE("extracting %s\n", debugstr_w(path));
+    TRACE("extracting %s -> %s\n", debugstr_w(data->curfile), debugstr_w(path));
 
     attrs = attrs & (FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_SYSTEM);
     if (!attrs) attrs = FILE_ATTRIBUTE_NORMAL;
-- 
1.7.9.1






More information about the wine-patches mailing list