Module: wine Branch: master Commit: fa2420d6960df77d6073e3666d375936c5999fe7 URL: http://source.winehq.org/git/wine.git/?a=commit;h=fa2420d6960df77d6073e3666d...
Author: Hans Leidekker hans@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;