Piotr Caban : msvcrt: Added wcrtomb implementation.

Alexandre Julliard julliard at winehq.org
Fri Nov 30 13:48:20 CST 2012


Module: wine
Branch: master
Commit: c0ce611ebd3684dcc59fb4803dbd0fa2af87bf73
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=c0ce611ebd3684dcc59fb4803dbd0fa2af87bf73

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Thu Nov 29 21:49:42 2012 +0000

msvcrt: Added wcrtomb implementation.

---

 dlls/msvcrt/msvcrt.spec |    2 +-
 dlls/msvcrt/wcs.c       |   20 +++++++++++++++++++-
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index 6a88832..ecf44fd 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -1445,7 +1445,7 @@
 @ cdecl vswprintf_s(ptr long wstr ptr) MSVCRT_vswprintf_s
 @ cdecl vwprintf(wstr ptr) MSVCRT_vwprintf
 @ cdecl vwprintf_s(wstr ptr) MSVCRT_vwprintf_s
-# stub wcrtomb(ptr long ptr)
+@ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb
 # stub wcrtomb_s(ptr ptr long long ptr)
 @ cdecl wcscat(wstr wstr) ntdll.wcscat
 @ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s
diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c
index 08628d4..555e63a 100644
--- a/dlls/msvcrt/wcs.c
+++ b/dlls/msvcrt/wcs.c
@@ -1083,7 +1083,25 @@ INT CDECL MSVCRT_wctob( MSVCRT_wint_t wchar )
  */
 INT CDECL MSVCRT_wctomb( char *dst, MSVCRT_wchar_t ch )
 {
-    return WideCharToMultiByte( get_locinfo()->lc_codepage, 0, &ch, 1, dst, 6, NULL, NULL );
+    BOOL error;
+    INT size;
+
+    size = WideCharToMultiByte(get_locinfo()->lc_codepage, 0, &ch, 1, dst, dst ? 6 : 0, NULL, &error);
+    if(!size || error) {
+        *MSVCRT__errno() = MSVCRT_EINVAL;
+        return MSVCRT_EOF;
+    }
+    return size;
+}
+
+/*********************************************************************
+ *              wcrtomb (MSVCRT.@)
+ */
+MSVCRT_size_t CDECL MSVCRT_wcrtomb( char *dst, MSVCRT_wchar_t ch, MSVCRT_mbstate_t *s)
+{
+    if(s)
+        *s = 0;
+    return MSVCRT_wctomb(dst, ch);
 }
 
 /*********************************************************************




More information about the wine-cvs mailing list