Module: wine Branch: master Commit: 815840e972fd70d2d4bfd32df5422cdc8e5ef738 URL: http://source.winehq.org/git/wine.git/?a=commit;h=815840e972fd70d2d4bfd32df5...
Author: Piotr Caban piotr@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