msvcrt: Add mbsrtowcs_s implementation.
Signed-off-by: Piotr Caban <piotr@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
4f5a68412b
commit
540d969150
|
@ -88,7 +88,7 @@
|
||||||
@ stub mbrtoc32
|
@ stub mbrtoc32
|
||||||
@ cdecl mbrtowc(ptr str long ptr) ucrtbase.mbrtowc
|
@ cdecl mbrtowc(ptr str long ptr) ucrtbase.mbrtowc
|
||||||
@ cdecl mbsrtowcs(ptr ptr long ptr) ucrtbase.mbsrtowcs
|
@ cdecl mbsrtowcs(ptr ptr long ptr) ucrtbase.mbsrtowcs
|
||||||
@ stub mbsrtowcs_s
|
@ cdecl mbsrtowcs_s(ptr ptr long ptr long ptr) ucrtbase.mbsrtowcs_s
|
||||||
@ cdecl mbstowcs(ptr str long) ucrtbase.mbstowcs
|
@ cdecl mbstowcs(ptr str long) ucrtbase.mbstowcs
|
||||||
@ cdecl mbstowcs_s(ptr ptr long str long) ucrtbase.mbstowcs_s
|
@ cdecl mbstowcs_s(ptr ptr long str long) ucrtbase.mbstowcs_s
|
||||||
@ cdecl mbtowc(ptr str long) ucrtbase.mbtowc
|
@ cdecl mbtowc(ptr str long) ucrtbase.mbtowc
|
||||||
|
|
|
@ -1745,7 +1745,7 @@
|
||||||
@ cdecl mbrlen(ptr long ptr) MSVCRT_mbrlen
|
@ cdecl mbrlen(ptr long ptr) MSVCRT_mbrlen
|
||||||
@ cdecl mbrtowc(ptr str long ptr) MSVCRT_mbrtowc
|
@ cdecl mbrtowc(ptr str long ptr) MSVCRT_mbrtowc
|
||||||
@ cdecl mbsrtowcs(ptr ptr long ptr) MSVCRT_mbsrtowcs
|
@ cdecl mbsrtowcs(ptr ptr long ptr) MSVCRT_mbsrtowcs
|
||||||
@ stub mbsrtowcs_s
|
@ cdecl mbsrtowcs_s(ptr ptr long ptr long ptr) MSVCRT_mbsrtowcs_s
|
||||||
@ cdecl mbstowcs(ptr str long) MSVCRT_mbstowcs
|
@ cdecl mbstowcs(ptr str long) MSVCRT_mbstowcs
|
||||||
@ cdecl mbstowcs_s(ptr ptr long str long) MSVCRT__mbstowcs_s
|
@ cdecl mbstowcs_s(ptr ptr long str long) MSVCRT__mbstowcs_s
|
||||||
@ cdecl mbtowc(ptr str long) MSVCRT_mbtowc
|
@ cdecl mbtowc(ptr str long) MSVCRT_mbtowc
|
||||||
|
|
|
@ -2103,7 +2103,7 @@
|
||||||
@ cdecl mbrlen(ptr long ptr) MSVCRT_mbrlen
|
@ cdecl mbrlen(ptr long ptr) MSVCRT_mbrlen
|
||||||
@ cdecl mbrtowc(ptr str long ptr) MSVCRT_mbrtowc
|
@ cdecl mbrtowc(ptr str long ptr) MSVCRT_mbrtowc
|
||||||
@ cdecl mbsrtowcs(ptr ptr long ptr) MSVCRT_mbsrtowcs
|
@ cdecl mbsrtowcs(ptr ptr long ptr) MSVCRT_mbsrtowcs
|
||||||
@ stub mbsrtowcs_s
|
@ cdecl mbsrtowcs_s(ptr ptr long ptr long ptr) MSVCRT_mbsrtowcs_s
|
||||||
@ cdecl mbstowcs(ptr str long) MSVCRT_mbstowcs
|
@ cdecl mbstowcs(ptr str long) MSVCRT_mbstowcs
|
||||||
@ cdecl mbstowcs_s(ptr ptr long str long) MSVCRT__mbstowcs_s
|
@ cdecl mbstowcs_s(ptr ptr long str long) MSVCRT__mbstowcs_s
|
||||||
@ cdecl mbtowc(ptr str long) MSVCRT_mbtowc
|
@ cdecl mbtowc(ptr str long) MSVCRT_mbtowc
|
||||||
|
|
|
@ -2280,7 +2280,7 @@
|
||||||
@ cdecl mbrlen(ptr long ptr) MSVCRT_mbrlen
|
@ cdecl mbrlen(ptr long ptr) MSVCRT_mbrlen
|
||||||
@ cdecl mbrtowc(ptr str long ptr) MSVCRT_mbrtowc
|
@ cdecl mbrtowc(ptr str long ptr) MSVCRT_mbrtowc
|
||||||
@ cdecl mbsrtowcs(ptr ptr long ptr) MSVCRT_mbsrtowcs
|
@ cdecl mbsrtowcs(ptr ptr long ptr) MSVCRT_mbsrtowcs
|
||||||
@ stub mbsrtowcs_s
|
@ cdecl mbsrtowcs_s(ptr ptr long ptr long ptr) MSVCRT_mbsrtowcs_s
|
||||||
@ cdecl mbstowcs(ptr str long) MSVCRT_mbstowcs
|
@ cdecl mbstowcs(ptr str long) MSVCRT_mbstowcs
|
||||||
@ cdecl mbstowcs_s(ptr ptr long str long) MSVCRT__mbstowcs_s
|
@ cdecl mbstowcs_s(ptr ptr long str long) MSVCRT__mbstowcs_s
|
||||||
@ cdecl mbtowc(ptr str long) MSVCRT_mbtowc
|
@ cdecl mbtowc(ptr str long) MSVCRT_mbtowc
|
||||||
|
|
|
@ -1943,7 +1943,7 @@
|
||||||
@ cdecl mbrlen(ptr long ptr) msvcr120.mbrlen
|
@ cdecl mbrlen(ptr long ptr) msvcr120.mbrlen
|
||||||
@ cdecl mbrtowc(ptr str long ptr) msvcr120.mbrtowc
|
@ cdecl mbrtowc(ptr str long ptr) msvcr120.mbrtowc
|
||||||
@ cdecl mbsrtowcs(ptr ptr long ptr) msvcr120.mbsrtowcs
|
@ cdecl mbsrtowcs(ptr ptr long ptr) msvcr120.mbsrtowcs
|
||||||
@ stub mbsrtowcs_s
|
@ cdecl mbsrtowcs_s(ptr ptr long ptr long ptr) msvcr120.mbsrtowcs_s
|
||||||
@ cdecl mbstowcs(ptr str long) msvcr120.mbstowcs
|
@ cdecl mbstowcs(ptr str long) msvcr120.mbstowcs
|
||||||
@ cdecl mbstowcs_s(ptr ptr long str long) msvcr120.mbstowcs_s
|
@ cdecl mbstowcs_s(ptr ptr long str long) msvcr120.mbstowcs_s
|
||||||
@ cdecl mbtowc(ptr str long) msvcr120.mbtowc
|
@ cdecl mbtowc(ptr str long) msvcr120.mbtowc
|
||||||
|
|
|
@ -1425,7 +1425,7 @@
|
||||||
@ cdecl mbrlen(ptr long ptr) MSVCRT_mbrlen
|
@ cdecl mbrlen(ptr long ptr) MSVCRT_mbrlen
|
||||||
@ cdecl mbrtowc(ptr str long ptr) MSVCRT_mbrtowc
|
@ cdecl mbrtowc(ptr str long ptr) MSVCRT_mbrtowc
|
||||||
@ cdecl mbsrtowcs(ptr ptr long ptr) MSVCRT_mbsrtowcs
|
@ cdecl mbsrtowcs(ptr ptr long ptr) MSVCRT_mbsrtowcs
|
||||||
@ stub mbsrtowcs_s
|
@ cdecl mbsrtowcs_s(ptr ptr long ptr long ptr) MSVCRT_mbsrtowcs_s
|
||||||
@ cdecl mbstowcs(ptr str long) MSVCRT_mbstowcs
|
@ cdecl mbstowcs(ptr str long) MSVCRT_mbstowcs
|
||||||
@ cdecl mbstowcs_s(ptr ptr long str long) MSVCRT__mbstowcs_s
|
@ cdecl mbstowcs_s(ptr ptr long str long) MSVCRT__mbstowcs_s
|
||||||
@ cdecl mbtowc(ptr str long) MSVCRT_mbtowc
|
@ cdecl mbtowc(ptr str long) MSVCRT_mbtowc
|
||||||
|
|
|
@ -1398,7 +1398,7 @@
|
||||||
@ cdecl mbrlen(ptr long ptr) MSVCRT_mbrlen
|
@ cdecl mbrlen(ptr long ptr) MSVCRT_mbrlen
|
||||||
@ cdecl mbrtowc(ptr str long ptr) MSVCRT_mbrtowc
|
@ cdecl mbrtowc(ptr str long ptr) MSVCRT_mbrtowc
|
||||||
@ cdecl mbsrtowcs(ptr ptr long ptr) MSVCRT_mbsrtowcs
|
@ cdecl mbsrtowcs(ptr ptr long ptr) MSVCRT_mbsrtowcs
|
||||||
@ stub mbsrtowcs_s
|
@ cdecl mbsrtowcs_s(ptr ptr long ptr long ptr) MSVCRT_mbsrtowcs_s
|
||||||
@ cdecl mbstowcs(ptr str long) MSVCRT_mbstowcs
|
@ cdecl mbstowcs(ptr str long) MSVCRT_mbstowcs
|
||||||
@ cdecl mbstowcs_s(ptr ptr long str long) MSVCRT__mbstowcs_s
|
@ cdecl mbstowcs_s(ptr ptr long str long) MSVCRT__mbstowcs_s
|
||||||
@ cdecl mbtowc(ptr str long) MSVCRT_mbtowc
|
@ cdecl mbtowc(ptr str long) MSVCRT_mbtowc
|
||||||
|
|
|
@ -2370,6 +2370,35 @@ MSVCRT_size_t CDECL MSVCRT_mbsrtowcs(MSVCRT_wchar_t *wcstr,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*********************************************************************
|
||||||
|
* mbsrtowcs_s(MSVCRT.@)
|
||||||
|
*/
|
||||||
|
int CDECL MSVCRT_mbsrtowcs_s(MSVCRT_size_t *ret, MSVCRT_wchar_t *wcstr, MSVCRT_size_t len,
|
||||||
|
const char **mbstr, MSVCRT_size_t count, MSVCRT_mbstate_t *state)
|
||||||
|
{
|
||||||
|
MSVCRT_size_t tmp;
|
||||||
|
|
||||||
|
if(!ret) ret = &tmp;
|
||||||
|
if(!MSVCRT_CHECK_PMT(!!wcstr == !!len)) {
|
||||||
|
*ret = -1;
|
||||||
|
return MSVCRT_EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
*ret = MSVCRT_mbsrtowcs(wcstr, mbstr, count>len ? len : count, state);
|
||||||
|
if(*ret == -1) {
|
||||||
|
if(wcstr) *wcstr = 0;
|
||||||
|
return *MSVCRT__errno();
|
||||||
|
}
|
||||||
|
(*ret)++;
|
||||||
|
if(*ret > len) {
|
||||||
|
/* no place for terminating '\0' */
|
||||||
|
if(wcstr) *wcstr = 0;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if(wcstr) wcstr[(*ret)-1] = 0;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
* _mbctohira (MSVCRT.@)
|
* _mbctohira (MSVCRT.@)
|
||||||
*
|
*
|
||||||
|
|
|
@ -1365,7 +1365,7 @@
|
||||||
@ cdecl mbrtowc(ptr str long ptr) MSVCRT_mbrtowc
|
@ cdecl mbrtowc(ptr str long ptr) MSVCRT_mbrtowc
|
||||||
# stub mbsdup_dbg(wstr long ptr long)
|
# stub mbsdup_dbg(wstr long ptr long)
|
||||||
@ cdecl mbsrtowcs(ptr ptr long ptr) MSVCRT_mbsrtowcs
|
@ cdecl mbsrtowcs(ptr ptr long ptr) MSVCRT_mbsrtowcs
|
||||||
# stub mbsrtowcs_s(ptr ptr long ptr long ptr)
|
@ cdecl mbsrtowcs_s(ptr ptr long ptr long ptr) MSVCRT_mbsrtowcs_s
|
||||||
@ cdecl mbstowcs(ptr str long) MSVCRT_mbstowcs
|
@ cdecl mbstowcs(ptr str long) MSVCRT_mbstowcs
|
||||||
@ cdecl mbstowcs_s(ptr ptr long str long) MSVCRT__mbstowcs_s
|
@ cdecl mbstowcs_s(ptr ptr long str long) MSVCRT__mbstowcs_s
|
||||||
@ cdecl mbtowc(ptr str long) MSVCRT_mbtowc
|
@ cdecl mbtowc(ptr str long) MSVCRT_mbtowc
|
||||||
|
|
|
@ -2415,7 +2415,7 @@
|
||||||
@ stub mbrtoc32
|
@ stub mbrtoc32
|
||||||
@ cdecl mbrtowc(ptr str long ptr) MSVCRT_mbrtowc
|
@ cdecl mbrtowc(ptr str long ptr) MSVCRT_mbrtowc
|
||||||
@ cdecl mbsrtowcs(ptr ptr long ptr) MSVCRT_mbsrtowcs
|
@ cdecl mbsrtowcs(ptr ptr long ptr) MSVCRT_mbsrtowcs
|
||||||
@ stub mbsrtowcs_s
|
@ cdecl mbsrtowcs_s(ptr ptr long ptr long ptr) MSVCRT_mbsrtowcs_s
|
||||||
@ cdecl mbstowcs(ptr str long) MSVCRT_mbstowcs
|
@ cdecl mbstowcs(ptr str long) MSVCRT_mbstowcs
|
||||||
@ cdecl mbstowcs_s(ptr ptr long str long) MSVCRT__mbstowcs_s
|
@ cdecl mbstowcs_s(ptr ptr long str long) MSVCRT__mbstowcs_s
|
||||||
@ cdecl mbtowc(ptr str long) MSVCRT_mbtowc
|
@ cdecl mbtowc(ptr str long) MSVCRT_mbtowc
|
||||||
|
|
Loading…
Reference in New Issue