Akihiro Sagawa : shlwapi: Fix wnsprintfW/wvnsprintfW %C conversion.

Alexandre Julliard julliard at winehq.org
Wed Feb 19 15:35:48 CST 2020


Module: wine
Branch: master
Commit: 850b63b65ec6eac906ac99bc1f12aa6d42d7fd08
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=850b63b65ec6eac906ac99bc1f12aa6d42d7fd08

Author: Akihiro Sagawa <sagawa.aki at gmail.com>
Date:   Wed Feb 19 23:21:43 2020 +0900

shlwapi: Fix wnsprintfW/wvnsprintfW %C conversion.

Signed-off-by: Akihiro Sagawa <sagawa.aki at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/shlwapi/wsprintf.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/dlls/shlwapi/wsprintf.c b/dlls/shlwapi/wsprintf.c
index baf5ea601a..dfc1488f63 100644
--- a/dlls/shlwapi/wsprintf.c
+++ b/dlls/shlwapi/wsprintf.c
@@ -525,8 +525,15 @@ INT WINAPI wvnsprintfW( LPWSTR buffer, INT maxlen, LPCWSTR spec, __ms_va_list ar
             *p++ = argData.wchar_view;
             break;
         case WPR_CHAR:
-            *p++ = argData.char_view;
-            break;
+            {
+                WCHAR wc;
+                if (!IsDBCSLeadByte( (BYTE)argData.char_view )
+                    && MultiByteToWideChar( CP_ACP, 0, &argData.char_view, 1, &wc, 1 ) > 0)
+                    *p++ = wc;
+                else
+                    *p++ = 0;
+                break;
+            }
         case WPR_STRING:
             {
                 LPCSTR ptr = argData.lpcstr_view;




More information about the wine-cvs mailing list