[4/4] msi: Perform a case insensitive match on filenames from cabinets.
Hans Leidekker
hans at codeweavers.com
Mon Mar 12 06:26:34 CDT 2012
Fixes http://bugs.winehq.org/show_bug.cgi?id=24551
---
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;
--
1.7.9.1
More information about the wine-patches
mailing list