Hans Leidekker : msi: Perform a case insensitive match on filenames from cabinets.

Alexandre Julliard julliard at winehq.org
Mon Mar 12 12:00:00 CDT 2012


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

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Mon Mar 12 12:26:34 2012 +0100

msi: Perform a case insensitive match on filenames from cabinets.

---

 dlls/msi/files.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/dlls/msi/files.c b/dlls/msi/files.c
index 909f71f..e928564 100644
--- a/dlls/msi/files.c
+++ b/dlls/msi/files.c
@@ -247,6 +247,17 @@ static UINT msi_create_directory( MSIPACKAGE *package, const WCHAR *dir )
     return ERROR_SUCCESS;
 }
 
+static MSIFILE *find_file( MSIPACKAGE *package, const WCHAR *filename )
+{
+    MSIFILE *file;
+
+    LIST_FOR_EACH_ENTRY( file, &package->files, MSIFILE, entry )
+    {
+        if (!strcmpiW( filename, file->File )) return file;
+    }
+    return NULL;
+}
+
 static BOOL installfiles_cb(MSIPACKAGE *package, LPCWSTR file, DWORD action,
                             LPWSTR *path, DWORD *attrs, PVOID user)
 {
@@ -255,8 +266,7 @@ static BOOL installfiles_cb(MSIPACKAGE *package, LPCWSTR file, DWORD action,
 
     if (action == MSICABEXTRACT_BEGINEXTRACT)
     {
-        f = msi_get_loaded_file(package, file);
-        if (!f)
+        if (!(f = find_file( package, file )))
         {
             TRACE("unknown file in cabinet (%s)\n", debugstr_w(file));
             return FALSE;




More information about the wine-cvs mailing list