Module: wine Branch: master Commit: 69b701a4a0f901be5b01148bd05dff58f01bbf6a URL: https://source.winehq.org/git/wine.git/?a=commit;h=69b701a4a0f901be5b01148bd...
Author: Piotr Caban piotr@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@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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)