From c4ab42d88ce339c55b2b518520d22d3a0f7ec7e2 Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Tue, 14 Jun 2016 11:57:20 +0200 Subject: [PATCH] msvcrt: Fix C locale handling in wcstombs. Signed-off-by: Piotr Caban Signed-off-by: Alexandre Julliard --- dlls/msvcrt/wcs.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c index c6091a82b94..4935e547baa 100644 --- a/dlls/msvcrt/wcs.c +++ b/dlls/msvcrt/wcs.c @@ -477,6 +477,24 @@ static MSVCRT_size_t MSVCRT_wcsrtombs_l(char *mbstr, const MSVCRT_wchar_t **wcst else locinfo = locale->locinfo; + if(!locinfo->lc_codepage) { + MSVCRT_size_t i; + + if(!mbstr) + return strlenW(*wcstr); + + for(i=0; i 255) { + *MSVCRT__errno() = MSVCRT_EILSEQ; + return -1; + } + + mbstr[i] = (*wcstr)[i]; + if(!(*wcstr)[i]) break; + } + return i; + } + if(!mbstr) { tmp = WideCharToMultiByte(locinfo->lc_codepage, WC_NO_BEST_FIT_CHARS, *wcstr, -1, NULL, 0, NULL, &used_default)-1;