Piotr Caban : msvcrt: Fix C locale handling in wcstombs.
Alexandre Julliard
julliard at winehq.org
Tue Jun 14 12:04:34 CDT 2016
Module: wine
Branch: master
Commit: c4ab42d88ce339c55b2b518520d22d3a0f7ec7e2
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c4ab42d88ce339c55b2b518520d22d3a0f7ec7e2
Author: Piotr Caban <piotr at codeweavers.com>
Date: Tue Jun 14 11:57:20 2016 +0200
msvcrt: Fix C locale handling in wcstombs.
Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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;
More information about the wine-cvs
mailing list