Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48455 Signed-off-by: Gijs Vermeulen gijsvrm@gmail.com --- dlls/setupapi/query.c | 31 ------------------------------- dlls/setupapi/queue.c | 15 ++++++++------- dlls/setupapi/setupapi_private.h | 19 +++++++++++++++++++ 3 files changed, 27 insertions(+), 38 deletions(-)
diff --git a/dlls/setupapi/query.c b/dlls/setupapi/query.c index 828d8a1145..e1a0f5aaf5 100644 --- a/dlls/setupapi/query.c +++ b/dlls/setupapi/query.c @@ -33,37 +33,6 @@
WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
-#ifdef __i386__ -static const WCHAR source_disks_names_platform[] = - {'S','o','u','r','c','e','D','i','s','k','s','N','a','m','e','s','.','x','8','6',0}; -static const WCHAR source_disks_files_platform[] = - {'S','o','u','r','c','e','D','i','s','k','s','F','i','l','e','s','.','x','8','6',0}; -#elif defined(__x86_64__) -static const WCHAR source_disks_names_platform[] = - {'S','o','u','r','c','e','D','i','s','k','s','N','a','m','e','s','.','a','m','d','6','4',0}; -static const WCHAR source_disks_files_platform[] = - {'S','o','u','r','c','e','D','i','s','k','s','F','i','l','e','s','.','a','m','d','6','4',0}; -#elif defined(__arm__) -static const WCHAR source_disks_names_platform[] = - {'S','o','u','r','c','e','D','i','s','k','s','N','a','m','e','s','.','a','r','m',0}; -static const WCHAR source_disks_files_platform[] = - {'S','o','u','r','c','e','D','i','s','k','s','F','i','l','e','s','.','a','r','m',0}; -#elif defined(__aarch64__) -static const WCHAR source_disks_names_platform[] = - {'S','o','u','r','c','e','D','i','s','k','s','N','a','m','e','s','.','a','r','m','6','4',0}; -static const WCHAR source_disks_files_platform[] = - {'S','o','u','r','c','e','D','i','s','k','s','F','i','l','e','s','.','a','r','m','6','4',0}; -#else /* FIXME: other platforms */ -static const WCHAR source_disks_names_platform[] = - {'S','o','u','r','c','e','D','i','s','k','s','N','a','m','e','s',0}; -static const WCHAR source_disks_files_platform[] = - {'S','o','u','r','c','e','D','i','s','k','s','F','i','l','e','s',0}; -#endif -static const WCHAR source_disks_names[] = - {'S','o','u','r','c','e','D','i','s','k','s','N','a','m','e','s',0}; -static const WCHAR source_disks_files[] = - {'S','o','u','r','c','e','D','i','s','k','s','F','i','l','e','s',0}; - /* fills the PSP_INF_INFORMATION struct fill_info is TRUE * always returns the required size of the information */ diff --git a/dlls/setupapi/queue.c b/dlls/setupapi/queue.c index 2d2c833474..8284a4f738 100644 --- a/dlls/setupapi/queue.c +++ b/dlls/setupapi/queue.c @@ -289,21 +289,22 @@ UINT CALLBACK QUEUE_callback_WtoA( void *context, UINT notification, static void get_source_info( HINF hinf, const WCHAR *src_file, SP_FILE_COPY_PARAMS_W *params, WCHAR *src_root, WCHAR *src_path) { - static const WCHAR SourceDisksNames[] = - {'S','o','u','r','c','e','D','i','s','k','s','N','a','m','e','s',0}; - static const WCHAR SourceDisksFiles[] = - {'S','o','u','r','c','e','D','i','s','k','s','F','i','l','e','s',0}; - INFCONTEXT file_ctx, disk_ctx; INT id, diskid; DWORD len;
/* find the SourceDisksFiles entry */ - if (!SetupFindFirstLineW( hinf, SourceDisksFiles, src_file, &file_ctx )) return; + if (!SetupFindFirstLineW( hinf, source_disks_files_platform, src_file, &file_ctx ) && + !SetupFindFirstLineW( hinf, source_disks_files, src_file, &file_ctx )) + return; + if (!SetupGetIntField( &file_ctx, 1, &diskid )) return;
/* now find the diskid in the SourceDisksNames section */ - if (!SetupFindFirstLineW( hinf, SourceDisksNames, NULL, &disk_ctx )) return; + if (!SetupFindFirstLineW( hinf, source_disks_names_platform, NULL, &disk_ctx ) && + !SetupFindFirstLineW( hinf, source_disks_names, NULL, &disk_ctx )) + return; + for (;;) { if (SetupGetIntField( &disk_ctx, 0, &id ) && (id == diskid)) break; diff --git a/dlls/setupapi/setupapi_private.h b/dlls/setupapi/setupapi_private.h index f4685ab2b4..b3ae3a6035 100644 --- a/dlls/setupapi/setupapi_private.h +++ b/dlls/setupapi/setupapi_private.h @@ -111,4 +111,23 @@ extern OSVERSIONINFOW OsVersionInfo DECLSPEC_HIDDEN; extern BOOL create_fake_dll( const WCHAR *name, const WCHAR *source ) DECLSPEC_HIDDEN; extern void cleanup_fake_dlls(void) DECLSPEC_HIDDEN;
+#ifdef __i386__ +static const WCHAR source_disks_names_platform[] = L"SourceDisksNames.x86"; +static const WCHAR source_disks_files_platform[] = L"SourceDisksFiles.x86"; +#elif defined(__x86_64__) +static const WCHAR source_disks_names_platform[] = L"SourceDisksNames.amd64"; +static const WCHAR source_disks_files_platform[] = L"SourceDisksFiles.amd64"; +#elif defined(__arm__) +static const WCHAR source_disks_names_platform[] = L"SourceDisksNames.arm"; +static const WCHAR source_disks_files_platform[] = L"SourceDisksFiles.arm"; +#elif defined(__aarch64__) +static const WCHAR source_disks_names_platform[] = L"SourceDisksNames.arm64"; +static const WCHAR source_disks_files_platform[] = L"SourceDisksFiles.arm64"; +#else /* FIXME: other platforms */ +static const WCHAR source_disks_names_platform[] = L"SourceDisksNames"; +static const WCHAR source_disks_files_platform[] = L"SourceDisksFiles"; +#endif +static const WCHAR source_disks_names[] = L"SourceDisksNames"; +static const WCHAR source_disks_files[] = L"SourceDisksFiles"; + #endif /* __SETUPAPI_PRIVATE_H */
Gijs Vermeulen gijsvrm@gmail.com writes:
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48455 Signed-off-by: Gijs Vermeulen gijsvrm@gmail.com
dlls/setupapi/query.c | 31 ------------------------------- dlls/setupapi/queue.c | 15 ++++++++------- dlls/setupapi/setupapi_private.h | 19 +++++++++++++++++++ 3 files changed, 27 insertions(+), 38 deletions(-)
I think it would be better to have a common helper functions instead of making the string constants global.