From 52c2976f1dd0139c7c651e2fdb2f38c2345c0afc Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Thu, 12 May 2011 11:37:48 +0200 Subject: [PATCH] msvcrt: Added _is*_l functions implementation. --- dlls/msvcrt/ctype.c | 88 +++++++++++++++++++++++++++++++++++++++++ dlls/msvcrt/msvcrt.spec | 22 +++++------ 2 files changed, 99 insertions(+), 11 deletions(-) diff --git a/dlls/msvcrt/ctype.c b/dlls/msvcrt/ctype.c index 9d5ed1e7b73..214959164ba 100644 --- a/dlls/msvcrt/ctype.c +++ b/dlls/msvcrt/ctype.c @@ -102,6 +102,14 @@ int CDECL _isctype(int c, int type) return _isctype_l(c, type, NULL); } +/********************************************************************* + * _isalnum_l (MSVCRT.@) + */ +int CDECL MSVCRT__isalnum_l(int c, MSVCRT__locale_t locale) +{ + return _isctype_l( c, MSVCRT__ALPHA | MSVCRT__DIGIT, locale ); +} + /********************************************************************* * isalnum (MSVCRT.@) */ @@ -110,6 +118,14 @@ int CDECL MSVCRT_isalnum(int c) return _isctype( c, MSVCRT__ALPHA | MSVCRT__DIGIT ); } +/********************************************************************* + * _isalpha_l (MSVCRT.@) + */ +int CDECL MSVCRT__isalpha_l(int c, MSVCRT__locale_t locale) +{ + return _isctype_l( c, MSVCRT__ALPHA, locale ); +} + /********************************************************************* * isalpha (MSVCRT.@) */ @@ -118,6 +134,14 @@ int CDECL MSVCRT_isalpha(int c) return _isctype( c, MSVCRT__ALPHA ); } +/********************************************************************* + * _iscntrl_l (MSVCRT.@) + */ +int CDECL MSVCRT__iscntrl_l(int c, MSVCRT__locale_t locale) +{ + return _isctype_l( c, MSVCRT__CONTROL, locale ); +} + /********************************************************************* * iscntrl (MSVCRT.@) */ @@ -126,6 +150,14 @@ int CDECL MSVCRT_iscntrl(int c) return _isctype( c, MSVCRT__CONTROL ); } +/********************************************************************* + * _isdigit_l (MSVCRT.@) + */ +int CDECL MSVCRT__isdigit_l(int c, MSVCRT__locale_t locale) +{ + return _isctype_l( c, MSVCRT__DIGIT, locale ); +} + /********************************************************************* * isdigit (MSVCRT.@) */ @@ -134,6 +166,14 @@ int CDECL MSVCRT_isdigit(int c) return _isctype( c, MSVCRT__DIGIT ); } +/********************************************************************* + * _isgraph_l (MSVCRT.@) + */ +int CDECL MSVCRT__isgraph_l(int c, MSVCRT__locale_t locale) +{ + return _isctype_l( c, MSVCRT__ALPHA | MSVCRT__DIGIT | MSVCRT__PUNCT, locale ); +} + /********************************************************************* * isgraph (MSVCRT.@) */ @@ -142,6 +182,14 @@ int CDECL MSVCRT_isgraph(int c) return _isctype( c, MSVCRT__ALPHA | MSVCRT__DIGIT | MSVCRT__PUNCT ); } +/********************************************************************* + * _isleadbyte_l (MSVCRT.@) + */ +int CDECL MSVCRT__isleadbyte_l(int c, MSVCRT__locale_t locale) +{ + return _isctype_l( c, MSVCRT__LEADBYTE, locale ); +} + /********************************************************************* * isleadbyte (MSVCRT.@) */ @@ -150,6 +198,14 @@ int CDECL MSVCRT_isleadbyte(int c) return _isctype( c, MSVCRT__LEADBYTE ); } +/********************************************************************* + * _islower_l (MSVCRT.@) + */ +int CDECL MSVCRT__islower_l(int c, MSVCRT__locale_t locale) +{ + return _isctype_l( c, MSVCRT__LOWER, locale ); +} + /********************************************************************* * islower (MSVCRT.@) */ @@ -158,6 +214,14 @@ int CDECL MSVCRT_islower(int c) return _isctype( c, MSVCRT__LOWER ); } +/********************************************************************* + * _isprint_l (MSVCRT.@) + */ +int CDECL MSVCRT__isprint_l(int c, MSVCRT__locale_t locale) +{ + return _isctype_l( c, MSVCRT__ALPHA | MSVCRT__DIGIT | MSVCRT__BLANK | MSVCRT__PUNCT, locale ); +} + /********************************************************************* * isprint (MSVCRT.@) */ @@ -174,6 +238,14 @@ int CDECL MSVCRT_ispunct(int c) return _isctype( c, MSVCRT__PUNCT ); } +/********************************************************************* + * _isspace_l (MSVCRT.@) + */ +int CDECL MSVCRT__isspace_l(int c, MSVCRT__locale_t locale) +{ + return _isctype_l( c, MSVCRT__SPACE, locale ); +} + /********************************************************************* * isspace (MSVCRT.@) */ @@ -182,6 +254,14 @@ int CDECL MSVCRT_isspace(int c) return _isctype( c, MSVCRT__SPACE ); } +/********************************************************************* + * _isupper_l (MSVCRT.@) + */ +int CDECL MSVCRT__isupper_l(int c, MSVCRT__locale_t locale) +{ + return _isctype_l( c, MSVCRT__UPPER, locale ); +} + /********************************************************************* * isupper (MSVCRT.@) */ @@ -190,6 +270,14 @@ int CDECL MSVCRT_isupper(int c) return _isctype( c, MSVCRT__UPPER ); } +/********************************************************************* + * _isxdigit_l (MSVCRT.@) + */ +int CDECL MSVCRT__isxdigit_l(int c, MSVCRT__locale_t locale) +{ + return _isctype_l( c, MSVCRT__HEX, locale ); +} + /********************************************************************* * isxdigit (MSVCRT.@) */ diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 23ba26d51cf..15de47ad7c1 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -530,16 +530,16 @@ @ stub -arch=i386 _inpw(long) @ cdecl _invalid_parameter(wstr wstr wstr long long) MSVCRT__invalid_parameter @ extern _iob MSVCRT__iob -# stub _isalnum_l(long ptr) -# stub _isalpha_l(long ptr) +@ cdecl _isalnum_l(long ptr) MSVCRT__isalnum_l +@ cdecl _isalpha_l(long ptr) MSVCRT__isalpha_l @ cdecl _isatty(long) -# stub _iscntrl_l(long ptr) +@ cdecl _iscntrl_l(long ptr) MSVCRT__iscntrl_l @ cdecl _isctype(long long) @ cdecl _isctype_l(long long ptr) -# stub _isdigit_l(long ptr) -# stub _isgraph_l(long ptr) -# stub _isleadbyte_l(long ptr) -# stub _islower_l(long ptr) +@ cdecl _isdigit_l(long ptr) MSVCRT__isdigit_l +@ cdecl _isgraph_l(long ptr) MSVCRT__isgraph_l +@ cdecl _isleadbyte_l(long ptr) MSVCRT__isleadbyte_l +@ cdecl _islower_l(long ptr) MSVCRT__islower_l @ stub _ismbbalnum(long) # stub _ismbbalnum_l(long ptr) @ stub _ismbbalpha(long) @@ -600,9 +600,9 @@ # stub _ismbstrail_l(long ptr) @ cdecl _isnan( double ) # stub -arch=win64 _isnanf(float) -# stub _isprint_l(long ptr) -# stub _isspace_l(long ptr) -# stub _isupper_l(long ptr) +@ cdecl _isprint_l(long ptr) MSVCRT__isprint_l +@ cdecl _isspace_l(long ptr) MSVCRT__isspace_l +@ cdecl _isupper_l(long ptr) MSVCRT__isupper_l # stub _iswalnum_l(long ptr) @ cdecl _iswalpha_l(long ptr) MSVCRT__iswalpha_l # stub _iswcntrl_l(long ptr) @@ -615,7 +615,7 @@ # stub _iswspace_l(long ptr) # stub _iswupper_l(long ptr) # stub _iswxdigit_l(long ptr) -# stub _isxdigit_l(long ptr) +@ cdecl _isxdigit_l(long ptr) MSVCRT__isxdigit_l @ cdecl _itoa(long ptr long) ntdll._itoa @ cdecl _itoa_s(long ptr long long) @ cdecl _itow(long ptr long) ntdll._itow