Piotr Caban : msvcrt: Added btowc implementation.

Alexandre Julliard julliard at winehq.org
Mon Apr 26 13:59:27 CDT 2010


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Mon Apr 26 12:33:19 2010 +0200

msvcrt: Added btowc implementation.

---

 dlls/msvcr80/msvcr80.spec |    2 +-
 dlls/msvcr90/msvcr90.spec |    2 +-
 dlls/msvcrt/locale.c      |   16 ++++++++++++++++
 dlls/msvcrt/msvcrt.spec   |    2 +-
 4 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
index 0c69621..b8e89e4 100644
--- a/dlls/msvcr80/msvcr80.spec
+++ b/dlls/msvcr80/msvcr80.spec
@@ -1235,7 +1235,7 @@
 @ cdecl atol(str) msvcrt.atol
 @ cdecl bsearch(ptr ptr long long ptr) msvcrt.bsearch
 @ stub bsearch_s
-@ stub btowc
+@ cdecl btowc(long) msvcrt.btowc
 @ cdecl calloc(long long) msvcrt.calloc
 @ cdecl ceil(double) msvcrt.ceil
 @ cdecl clearerr(ptr) msvcrt.clearerr
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
index 3bfd1b8..141592d 100644
--- a/dlls/msvcr90/msvcr90.spec
+++ b/dlls/msvcr90/msvcr90.spec
@@ -1219,7 +1219,7 @@
 @ cdecl atol(str) msvcrt.atol
 @ cdecl bsearch(ptr ptr long long ptr) msvcrt.bsearch
 @ stub bsearch_s
-@ stub btowc
+@ cdecl btowc(long) msvcrt.btowc
 @ cdecl calloc(long long) msvcrt.calloc
 @ cdecl ceil(double) msvcrt.ceil
 @ cdecl clearerr(ptr) msvcrt.clearerr
diff --git a/dlls/msvcrt/locale.c b/dlls/msvcrt/locale.c
index 84bd73b..546f20c 100644
--- a/dlls/msvcrt/locale.c
+++ b/dlls/msvcrt/locale.c
@@ -485,6 +485,22 @@ int CDECL __crtGetLocaleInfoW( LCID lcid, LCTYPE type, MSVCRT_wchar_t *buffer, i
 }
 
 /*********************************************************************
+ *              btowc(MSVCRT.@)
+ */
+MSVCRT_wint_t CDECL MSVCRT_btowc(int c)
+{
+    MSVCRT__locale_t locale = get_locale();
+    unsigned char letter = c;
+    MSVCRT_wchar_t ret;
+
+    if(!MultiByteToWideChar(locale->locinfo->lc_handle[MSVCRT_LC_CTYPE],
+                0, (LPCSTR)&letter, 1, &ret, 1))
+        return 0;
+
+    return ret;
+}
+
+/*********************************************************************
  *              __crtGetStringTypeW(MSVCRT.@)
  *
  * This function was accepting different number of arguments in older
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index 0909cd0..156ab2e 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -1165,7 +1165,7 @@
 @ cdecl atol(str) ntdll.atol
 @ cdecl bsearch(ptr ptr long long ptr) ntdll.bsearch
 # stub bsearch_s
-# stub btowc
+@ cdecl btowc(long) MSVCRT_btowc
 @ cdecl calloc(long long) MSVCRT_calloc
 @ cdecl ceil(double) MSVCRT_ceil
 @ cdecl clearerr(ptr) MSVCRT_clearerr




More information about the wine-cvs mailing list