msvcrt: Add wcrtomb_s implementation.

Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Piotr Caban 2019-09-30 19:09:09 +02:00 committed by Alexandre Julliard
parent 41bed7025a
commit a57d67b9bc
10 changed files with 23 additions and 9 deletions

View File

@ -102,7 +102,7 @@
@ cdecl -ret64 strtoull(str ptr long) ucrtbase.strtoull @ cdecl -ret64 strtoull(str ptr long) ucrtbase.strtoull
@ cdecl -ret64 strtoumax(str ptr long) ucrtbase.strtoumax @ cdecl -ret64 strtoumax(str ptr long) ucrtbase.strtoumax
@ cdecl wcrtomb(ptr long ptr) ucrtbase.wcrtomb @ cdecl wcrtomb(ptr long ptr) ucrtbase.wcrtomb
@ stub wcrtomb_s @ cdecl wcrtomb_s(ptr ptr long long ptr) ucrtbase.wcrtomb_s
@ cdecl wcsrtombs(ptr ptr long ptr) ucrtbase.wcsrtombs @ cdecl wcsrtombs(ptr ptr long ptr) ucrtbase.wcsrtombs
@ cdecl wcsrtombs_s(ptr ptr long ptr long ptr) ucrtbase.wcsrtombs_s @ cdecl wcsrtombs_s(ptr ptr long ptr long ptr) ucrtbase.wcsrtombs_s
@ cdecl wcstod(wstr ptr) ucrtbase.wcstod @ cdecl wcstod(wstr ptr) ucrtbase.wcstod

View File

@ -1853,7 +1853,7 @@
@ cdecl vwprintf(wstr ptr) MSVCRT_vwprintf @ cdecl vwprintf(wstr ptr) MSVCRT_vwprintf
@ cdecl vwprintf_s(wstr ptr) MSVCRT_vwprintf_s @ cdecl vwprintf_s(wstr ptr) MSVCRT_vwprintf_s
@ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb @ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb
@ stub wcrtomb_s @ cdecl wcrtomb_s(ptr ptr long long ptr) MSVCRT_wcrtomb_s
@ cdecl wcscat(wstr wstr) ntdll.wcscat @ cdecl wcscat(wstr wstr) ntdll.wcscat
@ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s @ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s
@ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcschr(wstr long) MSVCRT_wcschr

View File

@ -2211,7 +2211,7 @@
@ cdecl vwprintf(wstr ptr) MSVCRT_vwprintf @ cdecl vwprintf(wstr ptr) MSVCRT_vwprintf
@ cdecl vwprintf_s(wstr ptr) MSVCRT_vwprintf_s @ cdecl vwprintf_s(wstr ptr) MSVCRT_vwprintf_s
@ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb @ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb
@ stub wcrtomb_s @ cdecl wcrtomb_s(ptr ptr long long ptr) MSVCRT_wcrtomb_s
@ cdecl wcscat(wstr wstr) ntdll.wcscat @ cdecl wcscat(wstr wstr) ntdll.wcscat
@ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s @ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s
@ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcschr(wstr long) MSVCRT_wcschr

View File

@ -2446,7 +2446,7 @@
@ stub vwscanf @ stub vwscanf
@ stub vwscanf_s @ stub vwscanf_s
@ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb @ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb
@ stub wcrtomb_s @ cdecl wcrtomb_s(ptr ptr long long ptr) MSVCRT_wcrtomb_s
@ cdecl wcscat(wstr wstr) ntdll.wcscat @ cdecl wcscat(wstr wstr) ntdll.wcscat
@ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s @ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s
@ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcschr(wstr long) MSVCRT_wcschr

View File

@ -2108,7 +2108,7 @@
@ stub vwscanf @ stub vwscanf
@ stub vwscanf_s @ stub vwscanf_s
@ cdecl wcrtomb(ptr long ptr) msvcr120.wcrtomb @ cdecl wcrtomb(ptr long ptr) msvcr120.wcrtomb
@ stub wcrtomb_s @ cdecl wcrtomb_s(ptr ptr long long ptr) msvcr120.wcrtomb_s
@ cdecl wcscat(wstr wstr) msvcr120.wcscat @ cdecl wcscat(wstr wstr) msvcr120.wcscat
@ cdecl wcscat_s(wstr long wstr) msvcr120.wcscat_s @ cdecl wcscat_s(wstr long wstr) msvcr120.wcscat_s
@ cdecl wcschr(wstr long) msvcr120.wcschr @ cdecl wcschr(wstr long) msvcr120.wcschr

View File

@ -1533,7 +1533,7 @@
@ cdecl vwprintf(wstr ptr) MSVCRT_vwprintf @ cdecl vwprintf(wstr ptr) MSVCRT_vwprintf
@ cdecl vwprintf_s(wstr ptr) MSVCRT_vwprintf_s @ cdecl vwprintf_s(wstr ptr) MSVCRT_vwprintf_s
@ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb @ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb
@ stub wcrtomb_s @ cdecl wcrtomb_s(ptr ptr long long ptr) MSVCRT_wcrtomb_s
@ cdecl wcscat(wstr wstr) ntdll.wcscat @ cdecl wcscat(wstr wstr) ntdll.wcscat
@ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s @ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s
@ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcschr(wstr long) MSVCRT_wcschr

View File

@ -1506,7 +1506,7 @@
@ cdecl vwprintf(wstr ptr) MSVCRT_vwprintf @ cdecl vwprintf(wstr ptr) MSVCRT_vwprintf
@ cdecl vwprintf_s(wstr ptr) MSVCRT_vwprintf_s @ cdecl vwprintf_s(wstr ptr) MSVCRT_vwprintf_s
@ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb @ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb
@ stub wcrtomb_s @ cdecl wcrtomb_s(ptr ptr long long ptr) MSVCRT_wcrtomb_s
@ cdecl wcscat(wstr wstr) ntdll.wcscat @ cdecl wcscat(wstr wstr) ntdll.wcscat
@ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s @ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s
@ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcschr(wstr long) MSVCRT_wcschr

View File

@ -1480,7 +1480,7 @@
@ cdecl vwprintf(wstr ptr) MSVCRT_vwprintf @ cdecl vwprintf(wstr ptr) MSVCRT_vwprintf
@ cdecl vwprintf_s(wstr ptr) MSVCRT_vwprintf_s @ cdecl vwprintf_s(wstr ptr) MSVCRT_vwprintf_s
@ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb @ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb
# stub wcrtomb_s(ptr ptr long long ptr) @ cdecl wcrtomb_s(ptr ptr long long ptr) MSVCRT_wcrtomb_s
@ cdecl wcscat(wstr wstr) ntdll.wcscat @ cdecl wcscat(wstr wstr) ntdll.wcscat
@ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s @ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s
@ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcschr(wstr long) MSVCRT_wcschr

View File

@ -1821,6 +1821,20 @@ INT CDECL MSVCRT_wctob( MSVCRT_wint_t wchar )
return MSVCRT_EOF; return MSVCRT_EOF;
} }
/*********************************************************************
* wcrtomb_s (MSVCRT.@)
*/
INT CDECL MSVCRT_wcrtomb_s(MSVCRT_size_t *len, char *mbchar,
MSVCRT_size_t size, MSVCRT_wchar_t wch, MSVCRT_mbstate_t *s)
{
int ilen, ret;
if (s) *s = 0;
ret = MSVCRT_wctomb_s(&ilen, mbchar, size, wch);
if (len) *len = ilen;
return ret;
}
/********************************************************************* /*********************************************************************
* wcrtomb (MSVCRT.@) * wcrtomb (MSVCRT.@)
*/ */

View File

@ -2553,7 +2553,7 @@
@ cdecl ungetc(long ptr) MSVCRT_ungetc @ cdecl ungetc(long ptr) MSVCRT_ungetc
@ cdecl ungetwc(long ptr) MSVCRT_ungetwc @ cdecl ungetwc(long ptr) MSVCRT_ungetwc
@ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb @ cdecl wcrtomb(ptr long ptr) MSVCRT_wcrtomb
@ stub wcrtomb_s @ cdecl wcrtomb_s(ptr ptr long long ptr) MSVCRT_wcrtomb_s
@ cdecl wcscat(wstr wstr) ntdll.wcscat @ cdecl wcscat(wstr wstr) ntdll.wcscat
@ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s @ cdecl wcscat_s(wstr long wstr) MSVCRT_wcscat_s
@ cdecl wcschr(wstr long) MSVCRT_wcschr @ cdecl wcschr(wstr long) MSVCRT_wcschr