Module: wine Branch: master Commit: c4ab42d88ce339c55b2b518520d22d3a0f7ec7e2 URL: http://source.winehq.org/git/wine.git/?a=commit;h=c4ab42d88ce339c55b2b518520...
Author: Piotr Caban piotr@codeweavers.com Date: Tue Jun 14 11:57:20 2016 +0200
msvcrt: Fix C locale handling in wcstombs.
Signed-off-by: Piotr Caban piotr@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/msvcrt/wcs.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)
diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c index c6091a8..4935e54 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<count; i++) { + if((*wcstr)[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;