setupapi: Fix a string resource so its format placeholders can be reordered.

Francois Gouget fgouget at free.fr
Sat Nov 19 08:12:05 CST 2011


---
 dlls/setupapi/dialog.c    |   18 ++++++++++--------
 dlls/setupapi/setupapi.rc |    2 +-
 2 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/dlls/setupapi/dialog.c b/dlls/setupapi/dialog.c
index 948fa74..24a46e8 100644
--- a/dlls/setupapi/dialog.c
+++ b/dlls/setupapi/dialog.c
@@ -51,9 +51,6 @@ struct promptdisk_params {
 */
 static void promptdisk_init(HWND hwnd, struct promptdisk_params *params)
 {
-    WCHAR format[256];
-    WCHAR message[256];
-
     SetWindowLongPtrW(hwnd, DWLP_USER, (LONG_PTR)params);
 
     if(params->DialogTitle)
@@ -63,20 +60,25 @@ static void promptdisk_init(HWND hwnd, struct promptdisk_params *params)
 
     if(!(params->DiskPromptStyle & IDF_OEMDISK))
     {
+        WCHAR message[256+2*MAX_PATH];
+        WCHAR format[256];
+        WCHAR unknown[256];
+        DWORD_PTR args[2];
         LoadStringW(SETUPAPI_hInstance, IDS_PROMPTDISK, format,
             sizeof(format)/sizeof(format[0]));
 
+        args[0] = (DWORD_PTR)params->FileSought;
         if(params->DiskName)
-            snprintfW(message, sizeof(message)/sizeof(message[0]), format,
-                params->FileSought, params->DiskName);
+            args[1] = (DWORD_PTR)params->DiskName;
         else
         {
-            WCHAR unknown[256];
             LoadStringW(SETUPAPI_hInstance, IDS_UNKNOWN, unknown,
                 sizeof(unknown)/sizeof(unknown[0]));
-            snprintfW(message, sizeof(message)/sizeof(message[0]), format,
-                params->FileSought, unknown);
+            args[1] = (DWORD_PTR)unknown;
         }
+        FormatMessageW(FORMAT_MESSAGE_FROM_STRING|FORMAT_MESSAGE_ARGUMENT_ARRAY,
+                       format, 0, 0, message, sizeof(message)/sizeof(*message),
+                       (__ms_va_list*)args);
         SetDlgItemTextW(hwnd, IDC_FILENEEDED, message);
 
         LoadStringW(SETUPAPI_hInstance, IDS_INFO, message,
diff --git a/dlls/setupapi/setupapi.rc b/dlls/setupapi/setupapi.rc
index b657857..eaffbb8 100644
--- a/dlls/setupapi/setupapi.rc
+++ b/dlls/setupapi/setupapi.rc
@@ -25,7 +25,7 @@ LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
 
 STRINGTABLE
 {
-        IDS_PROMPTDISK   "The file '%s' on %s is needed"
+        IDS_PROMPTDISK   "The file '%1' on %2 is needed"
         IDS_UNKNOWN      "Unknown"
         IDS_COPYFROM     "Copy files from:"
         IDS_INFO         "Type the path where the file is located, and then click OK."
-- 
1.7.7.1




More information about the wine-patches mailing list