ucrtbase: Add _iswblank_l.

Signed-off-by: Daniel Lehman <dlehman@esri.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Daniel Lehman 2017-04-03 13:25:26 -07:00 committed by Alexandre Julliard
parent bda232de94
commit 111637a3c6
6 changed files with 32 additions and 8 deletions

View File

@ -21,7 +21,7 @@
@ cdecl _isupper_l(long ptr) ucrtbase._isupper_l @ cdecl _isupper_l(long ptr) ucrtbase._isupper_l
@ stub _iswalnum_l @ stub _iswalnum_l
@ cdecl _iswalpha_l(long ptr) ucrtbase._iswalpha_l @ cdecl _iswalpha_l(long ptr) ucrtbase._iswalpha_l
@ stub _iswblank_l @ cdecl _iswblank_l(long ptr) ucrtbase._iswblank_l
@ stub _iswcntrl_l @ stub _iswcntrl_l
@ stub _iswcsym_l @ stub _iswcsym_l
@ stub _iswcsymf_l @ stub _iswcsymf_l
@ -113,7 +113,7 @@
@ cdecl iswalnum(long) ucrtbase.iswalnum @ cdecl iswalnum(long) ucrtbase.iswalnum
@ cdecl iswalpha(long) ucrtbase.iswalpha @ cdecl iswalpha(long) ucrtbase.iswalpha
@ cdecl iswascii(long) ucrtbase.iswascii @ cdecl iswascii(long) ucrtbase.iswascii
@ stub iswblank @ cdecl iswblank(long) ucrtbase.iswblank
@ cdecl iswcntrl(long) ucrtbase.iswcntrl @ cdecl iswcntrl(long) ucrtbase.iswcntrl
@ cdecl iswctype(long long) ucrtbase.iswctype @ cdecl iswctype(long long) ucrtbase.iswctype
@ cdecl iswdigit(long) ucrtbase.iswdigit @ cdecl iswdigit(long) ucrtbase.iswdigit

View File

@ -1369,7 +1369,7 @@
@ cdecl _isupper_l(long ptr) MSVCRT__isupper_l @ cdecl _isupper_l(long ptr) MSVCRT__isupper_l
@ stub _iswalnum_l @ stub _iswalnum_l
@ cdecl _iswalpha_l(long ptr) MSVCRT__iswalpha_l @ cdecl _iswalpha_l(long ptr) MSVCRT__iswalpha_l
@ stub _iswblank_l @ cdecl _iswblank_l(long ptr) MSVCRT__iswblank_l
@ stub _iswcntrl_l @ stub _iswcntrl_l
@ stub _iswcsym_l @ stub _iswcsym_l
@ stub _iswcsymf_l @ stub _iswcsymf_l
@ -2228,7 +2228,7 @@
@ cdecl iswalnum(long) MSVCRT_iswalnum @ cdecl iswalnum(long) MSVCRT_iswalnum
@ cdecl iswalpha(long) ntdll.iswalpha @ cdecl iswalpha(long) ntdll.iswalpha
@ cdecl iswascii(long) MSVCRT_iswascii @ cdecl iswascii(long) MSVCRT_iswascii
@ stub iswblank @ cdecl iswblank(long) MSVCRT_iswblank
@ cdecl iswcntrl(long) MSVCRT_iswcntrl @ cdecl iswcntrl(long) MSVCRT_iswcntrl
@ cdecl iswctype(long long) ntdll.iswctype @ cdecl iswctype(long long) ntdll.iswctype
@ cdecl iswdigit(long) MSVCRT_iswdigit @ cdecl iswdigit(long) MSVCRT_iswdigit

View File

@ -1234,7 +1234,7 @@
@ cdecl _isupper_l(long ptr) msvcr120._isupper_l @ cdecl _isupper_l(long ptr) msvcr120._isupper_l
@ stub _iswalnum_l @ stub _iswalnum_l
@ cdecl _iswalpha_l(long ptr) msvcr120._iswalpha_l @ cdecl _iswalpha_l(long ptr) msvcr120._iswalpha_l
@ stub _iswblank_l @ cdecl _iswblank_l(long ptr) msvcr120._iswblank_l
@ stub _iswcntrl_l @ stub _iswcntrl_l
@ stub _iswcsym_l @ stub _iswcsym_l
@ stub _iswcsymf_l @ stub _iswcsymf_l
@ -1891,7 +1891,7 @@
@ cdecl iswalnum(long) msvcr120.iswalnum @ cdecl iswalnum(long) msvcr120.iswalnum
@ cdecl iswalpha(long) msvcr120.iswalpha @ cdecl iswalpha(long) msvcr120.iswalpha
@ cdecl iswascii(long) msvcr120.iswascii @ cdecl iswascii(long) msvcr120.iswascii
@ stub iswblank @ cdecl iswblank(long) msvcr120.iswblank
@ cdecl iswcntrl(long) msvcr120.iswcntrl @ cdecl iswcntrl(long) msvcr120.iswcntrl
@ cdecl iswctype(long long) msvcr120.iswctype @ cdecl iswctype(long long) msvcr120.iswctype
@ cdecl iswdigit(long) msvcr120.iswdigit @ cdecl iswdigit(long) msvcr120.iswdigit

View File

@ -1865,6 +1865,22 @@ INT CDECL MSVCRT__iswctype_l( MSVCRT_wchar_t wc, MSVCRT_wctype_t type, MSVCRT__l
return (get_char_typeW(wc) & 0xffff) & type; return (get_char_typeW(wc) & 0xffff) & type;
} }
/*********************************************************************
* _iswblank_l (MSVCRT.@)
*/
INT CDECL MSVCRT__iswblank_l( MSVCRT_wchar_t wc, MSVCRT__locale_t locale )
{
return wc == '\t' || MSVCRT__iswctype_l( wc, MSVCRT__BLANK, locale );
}
/*********************************************************************
* iswblank (MSVCRT.@)
*/
INT CDECL MSVCRT_iswblank( MSVCRT_wchar_t wc )
{
return wc == '\t' || MSVCRT__iswctype_l( wc, MSVCRT__BLANK, NULL );
}
/********************************************************************* /*********************************************************************
* wcscpy_s (MSVCRT.@) * wcscpy_s (MSVCRT.@)
*/ */

View File

@ -90,6 +90,8 @@ static int (CDECL *p__isctype)(int,int);
static int (CDECL *p_isblank)(int); static int (CDECL *p_isblank)(int);
static int (CDECL *p__isblank_l)(int,_locale_t); static int (CDECL *p__isblank_l)(int,_locale_t);
static int (CDECL *p__iswctype_l)(int,int,_locale_t); static int (CDECL *p__iswctype_l)(int,int,_locale_t);
static int (CDECL *p_iswblank)(int);
static int (CDECL *p__iswblank_l)(wint_t,_locale_t);
static void test__initialize_onexit_table(void) static void test__initialize_onexit_table(void)
{ {
@ -388,6 +390,8 @@ static BOOL init(void)
p_isblank = (void*)GetProcAddress(module, "isblank"); p_isblank = (void*)GetProcAddress(module, "isblank");
p__isblank_l = (void*)GetProcAddress(module, "_isblank_l"); p__isblank_l = (void*)GetProcAddress(module, "_isblank_l");
p__iswctype_l = (void*)GetProcAddress(module, "_iswctype_l"); p__iswctype_l = (void*)GetProcAddress(module, "_iswctype_l");
p_iswblank = (void*)GetProcAddress(module, "iswblank");
p__iswblank_l = (void*)GetProcAddress(module, "_iswblank_l");
return TRUE; return TRUE;
} }
@ -493,9 +497,13 @@ static void test_isblank(void)
todo_wine ok(!p__iswctype_l(c, _BLANK, NULL), "tab shouldn't be blank\n"); todo_wine ok(!p__iswctype_l(c, _BLANK, NULL), "tab shouldn't be blank\n");
else else
ok(p__iswctype_l(c, _BLANK, NULL), "%d should be blank\n", c); ok(p__iswctype_l(c, _BLANK, NULL), "%d should be blank\n", c);
ok(p_iswblank(c), "%d should be blank\n", c);
ok(p__iswblank_l(c, NULL), "%d should be blank\n", c);
} else { } else {
todo_wine_if(c == 0xa0) { todo_wine_if(c == 0xa0) {
ok(!p__iswctype_l(c, _BLANK, NULL), "%d shouldn't be blank\n", c); ok(!p__iswctype_l(c, _BLANK, NULL), "%d shouldn't be blank\n", c);
ok(!p_iswblank(c), "%d shouldn't be blank\n", c);
ok(!p__iswblank_l(c, NULL), "%d shouldn't be blank\n", c);
} }
} }
} }

View File

@ -508,7 +508,7 @@
@ cdecl _isupper_l(long ptr) MSVCRT__isupper_l @ cdecl _isupper_l(long ptr) MSVCRT__isupper_l
@ stub _iswalnum_l @ stub _iswalnum_l
@ cdecl _iswalpha_l(long ptr) MSVCRT__iswalpha_l @ cdecl _iswalpha_l(long ptr) MSVCRT__iswalpha_l
@ stub _iswblank_l @ cdecl _iswblank_l(long ptr) MSVCRT__iswblank_l
@ stub _iswcntrl_l @ stub _iswcntrl_l
@ stub _iswcsym_l @ stub _iswcsym_l
@ stub _iswcsymf_l @ stub _iswcsymf_l
@ -2362,7 +2362,7 @@
@ cdecl iswalnum(long) MSVCRT_iswalnum @ cdecl iswalnum(long) MSVCRT_iswalnum
@ cdecl iswalpha(long) ntdll.iswalpha @ cdecl iswalpha(long) ntdll.iswalpha
@ cdecl iswascii(long) MSVCRT_iswascii @ cdecl iswascii(long) MSVCRT_iswascii
@ stub iswblank @ cdecl iswblank(long) MSVCRT_iswblank
@ cdecl iswcntrl(long) MSVCRT_iswcntrl @ cdecl iswcntrl(long) MSVCRT_iswcntrl
@ cdecl iswctype(long long) ntdll.iswctype @ cdecl iswctype(long long) ntdll.iswctype
@ cdecl iswdigit(long) MSVCRT_iswdigit @ cdecl iswdigit(long) MSVCRT_iswdigit