Piotr Caban : ucrtbase: Support UTF8 codepage in _wctomb_s_l.

Alexandre Julliard julliard at winehq.org
Mon Oct 19 15:54:06 CDT 2020


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Mon Oct 19 19:35:41 2020 +0200

ucrtbase: Support UTF8 codepage in _wctomb_s_l.

Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/msvcrt/wcs.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c
index 179a5b6a340..ed843d6e58d 100644
--- a/dlls/msvcrt/wcs.c
+++ b/dlls/msvcrt/wcs.c
@@ -1905,7 +1905,8 @@ int CDECL MSVCRT__wctomb_s_l(int *len, char *mbchar, MSVCRT_size_t size,
         MSVCRT_wchar_t wch, MSVCRT__locale_t locale)
 {
     MSVCRT_pthreadlocinfo locinfo;
-    BOOL error;
+    BOOL error = FALSE;
+    BOOL *perror;
     int mblen;
 
     if(!mbchar && size>0) {
@@ -1942,7 +1943,8 @@ int CDECL MSVCRT__wctomb_s_l(int *len, char *mbchar, MSVCRT_size_t size,
         return 0;
     }
 
-    mblen = WideCharToMultiByte(locinfo->lc_codepage, 0, &wch, 1, mbchar, size, NULL, &error);
+    perror = (locinfo->lc_codepage != CP_UTF8 ? &error : NULL);
+    mblen = WideCharToMultiByte(locinfo->lc_codepage, 0, &wch, 1, mbchar, size, NULL, perror);
     if(!mblen || error) {
         if(!mblen && GetLastError()==ERROR_INSUFFICIENT_BUFFER) {
             if(mbchar && size>0)




More information about the wine-cvs mailing list