From 69b701a4a0f901be5b01148bd05dff58f01bbf6a Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Mon, 19 Oct 2020 19:35:41 +0200 Subject: [PATCH] ucrtbase: Support UTF8 codepage in _wctomb_s_l. Signed-off-by: Piotr Caban Signed-off-by: Alexandre Julliard --- 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)