mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-07 05:44:05 +00:00
msvcrt: Add _mbsrchr_l implementation.
This commit is contained in:
parent
3c9419622a
commit
2853352cc8
|
@ -1176,7 +1176,7 @@
|
|||
@ cdecl _mbspbrk(str str)
|
||||
@ stub _mbspbrk_l
|
||||
@ cdecl _mbsrchr(str long)
|
||||
@ stub _mbsrchr_l
|
||||
@ cdecl _mbsrchr_l(str long ptr)
|
||||
@ cdecl _mbsrev(str)
|
||||
@ stub _mbsrev_l
|
||||
@ cdecl _mbsset(ptr long)
|
||||
|
|
|
@ -1533,7 +1533,7 @@
|
|||
@ cdecl _mbspbrk(str str)
|
||||
@ stub _mbspbrk_l
|
||||
@ cdecl _mbsrchr(str long)
|
||||
@ stub _mbsrchr_l
|
||||
@ cdecl _mbsrchr_l(str long ptr)
|
||||
@ cdecl _mbsrev(str)
|
||||
@ stub _mbsrev_l
|
||||
@ cdecl _mbsset(ptr long)
|
||||
|
|
|
@ -1544,7 +1544,7 @@
|
|||
@ cdecl _mbspbrk(str str)
|
||||
@ stub _mbspbrk_l
|
||||
@ cdecl _mbsrchr(str long)
|
||||
@ stub _mbsrchr_l
|
||||
@ cdecl _mbsrchr_l(str long ptr)
|
||||
@ cdecl _mbsrev(str)
|
||||
@ stub _mbsrev_l
|
||||
@ cdecl _mbsset(ptr long)
|
||||
|
|
|
@ -848,7 +848,7 @@
|
|||
@ cdecl _mbspbrk(str str)
|
||||
@ stub _mbspbrk_l
|
||||
@ cdecl _mbsrchr(str long)
|
||||
@ stub _mbsrchr_l
|
||||
@ cdecl _mbsrchr_l(str long ptr)
|
||||
@ cdecl _mbsrev(str)
|
||||
@ stub _mbsrev_l
|
||||
@ cdecl _mbsset(ptr long)
|
||||
|
|
|
@ -826,7 +826,7 @@
|
|||
@ cdecl _mbspbrk(str str)
|
||||
@ stub _mbspbrk_l
|
||||
@ cdecl _mbsrchr(str long)
|
||||
@ stub _mbsrchr_l
|
||||
@ cdecl _mbsrchr_l(str long ptr)
|
||||
@ cdecl _mbsrev(str)
|
||||
@ stub _mbsrev_l
|
||||
@ cdecl _mbsset(ptr long)
|
||||
|
|
|
@ -1441,27 +1441,45 @@ unsigned char* CDECL _mbschr(const unsigned char* s, unsigned int x)
|
|||
return _mbschr_l(s, x, NULL);
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
* _mbsrchr_l(MSVCRT.@)
|
||||
*/
|
||||
unsigned char* CDECL _mbsrchr_l(const unsigned char *s, unsigned int x, _locale_t locale)
|
||||
{
|
||||
pthreadmbcinfo mbcinfo;
|
||||
|
||||
if (!MSVCRT_CHECK_PMT(s))
|
||||
return NULL;
|
||||
|
||||
if (locale)
|
||||
mbcinfo = locale->mbcinfo;
|
||||
else
|
||||
mbcinfo = get_mbcinfo();
|
||||
|
||||
if (mbcinfo->ismbcodepage)
|
||||
{
|
||||
unsigned char *match = NULL;
|
||||
unsigned int c;
|
||||
|
||||
while (1)
|
||||
{
|
||||
c = _mbsnextc_l(s, locale);
|
||||
if (c == x)
|
||||
match = (unsigned char *)s;
|
||||
if (!c)
|
||||
return match;
|
||||
s += (c > 255) ? 2 : 1;
|
||||
}
|
||||
}
|
||||
return u_strrchr(s, x);
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
* _mbsrchr(MSVCRT.@)
|
||||
*/
|
||||
unsigned char* CDECL _mbsrchr(const unsigned char* s, unsigned int x)
|
||||
{
|
||||
if(get_mbcinfo()->ismbcodepage)
|
||||
{
|
||||
unsigned int c;
|
||||
unsigned char* match=NULL;
|
||||
if(!s)
|
||||
return NULL;
|
||||
while (1) {
|
||||
c = _mbsnextc(s);
|
||||
if (c == x)
|
||||
match=(unsigned char*)s;
|
||||
if (!c)
|
||||
return match;
|
||||
s +=(c > 255) ? 2 : 1;
|
||||
}
|
||||
}
|
||||
return u_strrchr(s, x);
|
||||
return _mbsrchr_l(s, x, NULL);
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
|
|
|
@ -797,7 +797,7 @@
|
|||
@ cdecl _mbspbrk(str str)
|
||||
# stub _mbspbrk_l(str str ptr)
|
||||
@ cdecl _mbsrchr(str long)
|
||||
# stub _mbsrchr_l(str long ptr)
|
||||
@ cdecl _mbsrchr_l(str long ptr)
|
||||
@ cdecl _mbsrev(str)
|
||||
# stub _mbsrev_l(str ptr)
|
||||
@ cdecl _mbsset(ptr long)
|
||||
|
|
|
@ -692,7 +692,7 @@
|
|||
@ cdecl _mbspbrk(str str)
|
||||
@ stub _mbspbrk_l
|
||||
@ cdecl _mbsrchr(str long)
|
||||
@ stub _mbsrchr_l
|
||||
@ cdecl _mbsrchr_l(str long ptr)
|
||||
@ cdecl _mbsrev(str)
|
||||
@ stub _mbsrev_l
|
||||
@ cdecl _mbsset(ptr long)
|
||||
|
@ -1261,7 +1261,7 @@
|
|||
@ cdecl _o__mbspbrk(str str) _mbspbrk
|
||||
@ stub _o__mbspbrk_l
|
||||
@ cdecl _o__mbsrchr(str long) _mbsrchr
|
||||
@ stub _o__mbsrchr_l
|
||||
@ cdecl _o__mbsrchr_l(str long ptr) _mbsrchr_l
|
||||
@ cdecl _o__mbsrev(str) _mbsrev
|
||||
@ stub _o__mbsrev_l
|
||||
@ cdecl _o__mbsset(ptr long) _mbsset
|
||||
|
|
Loading…
Reference in a new issue