From fd74aeb726e65c62a9e110bdbf282549cb8afce0 Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Thu, 16 Jul 2020 15:32:58 +0200 Subject: [PATCH] msvcrt: Add _ismbcdigit_l implementation. Signed-off-by: Piotr Caban Signed-off-by: Alexandre Julliard --- .../api-ms-win-crt-multibyte-l1-1-0.spec | 2 +- .../api-ms-win-crt-private-l1-1-0.spec | 2 +- dlls/msvcr100/msvcr100.spec | 2 +- dlls/msvcr110/msvcr110.spec | 2 +- dlls/msvcr120/msvcr120.spec | 2 +- dlls/msvcr80/msvcr80.spec | 2 +- dlls/msvcr90/msvcr90.spec | 2 +- dlls/msvcrt/mbcs.c | 11 +++++++++-- dlls/msvcrt/msvcrt.h | 1 + dlls/msvcrt/msvcrt.spec | 2 +- dlls/ucrtbase/ucrtbase.spec | 4 ++-- 11 files changed, 20 insertions(+), 12 deletions(-) diff --git a/dlls/api-ms-win-crt-multibyte-l1-1-0/api-ms-win-crt-multibyte-l1-1-0.spec b/dlls/api-ms-win-crt-multibyte-l1-1-0/api-ms-win-crt-multibyte-l1-1-0.spec index 991ad90a924..06467a76d22 100644 --- a/dlls/api-ms-win-crt-multibyte-l1-1-0/api-ms-win-crt-multibyte-l1-1-0.spec +++ b/dlls/api-ms-win-crt-multibyte-l1-1-0/api-ms-win-crt-multibyte-l1-1-0.spec @@ -31,7 +31,7 @@ @ stub _ismbcblank @ stub _ismbcblank_l @ cdecl _ismbcdigit(long) ucrtbase._ismbcdigit -@ stub _ismbcdigit_l +@ cdecl _ismbcdigit_l(long ptr) ucrtbase._ismbcdigit_l @ cdecl _ismbcgraph(long) ucrtbase._ismbcgraph @ stub _ismbcgraph_l @ cdecl _ismbchira(long) ucrtbase._ismbchira diff --git a/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec b/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec index afcac3bacb5..90ae1826351 100644 --- a/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec +++ b/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec @@ -404,7 +404,7 @@ @ stub _o__ismbcblank @ stub _o__ismbcblank_l @ cdecl _o__ismbcdigit(long) ucrtbase._o__ismbcdigit -@ stub _o__ismbcdigit_l +@ cdecl _o__ismbcdigit_l(long ptr) ucrtbase._o__ismbcdigit_l @ cdecl _o__ismbcgraph(long) ucrtbase._o__ismbcgraph @ stub _o__ismbcgraph_l @ cdecl _o__ismbchira(long) ucrtbase._o__ismbchira diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index acf8601defd..6a0a54aee2d 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -979,7 +979,7 @@ @ cdecl _ismbcalpha(long) @ stub _ismbcalpha_l @ cdecl _ismbcdigit(long) -@ stub _ismbcdigit_l +@ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) @ stub _ismbcgraph_l @ cdecl _ismbchira(long) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 477b5a4a006..a2e63aab460 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1325,7 +1325,7 @@ @ cdecl _ismbcalpha(long) @ stub _ismbcalpha_l @ cdecl _ismbcdigit(long) -@ stub _ismbcdigit_l +@ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) @ stub _ismbcgraph_l @ cdecl _ismbchira(long) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index b3207ad0863..073741e76f9 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1330,7 +1330,7 @@ @ stub _ismbcblank @ stub _ismbcblank_l @ cdecl _ismbcdigit(long) -@ stub _ismbcdigit_l +@ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) @ stub _ismbcgraph_l @ cdecl _ismbchira(long) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index fa6c7186f73..5280a38b878 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -651,7 +651,7 @@ @ cdecl _ismbcalpha(long) @ stub _ismbcalpha_l @ cdecl _ismbcdigit(long) -@ stub _ismbcdigit_l +@ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) @ stub _ismbcgraph_l @ cdecl _ismbchira(long) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 566e9431be3..fefcfa76b0a 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -629,7 +629,7 @@ @ cdecl _ismbcalpha(long) @ stub _ismbcalpha_l @ cdecl _ismbcdigit(long) -@ stub _ismbcdigit_l +@ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) @ stub _ismbcgraph_l @ cdecl _ismbchira(long) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index 5b07e13bba4..c6caab19f8e 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -1427,13 +1427,20 @@ int CDECL _ismbbkana(unsigned int c) return _ismbbkana_l( c, NULL ); } +/********************************************************************* + * _ismbcdigit_l(MSVCRT.@) + */ +int CDECL _ismbcdigit_l(unsigned int ch, MSVCRT__locale_t locale) +{ + return MSVCRT__iswdigit_l( msvcrt_mbc_to_wc_l(ch, locale), locale ); +} + /********************************************************************* * _ismbcdigit(MSVCRT.@) */ int CDECL _ismbcdigit(unsigned int ch) { - MSVCRT_wchar_t wch = msvcrt_mbc_to_wc( ch ); - return (get_char_typeW( wch ) & C1_DIGIT); + return _ismbcdigit_l( ch, NULL ); } /********************************************************************* diff --git a/dlls/msvcrt/msvcrt.h b/dlls/msvcrt/msvcrt.h index a0fbeb7ebe4..973b9288887 100644 --- a/dlls/msvcrt/msvcrt.h +++ b/dlls/msvcrt/msvcrt.h @@ -1202,6 +1202,7 @@ int __cdecl MSVCRT__wcsnicmp(const MSVCRT_wchar_t*, const MSVCRT_wchar_t*, MSVCR int __cdecl MSVCRT_towlower(MSVCRT_wint_t); int __cdecl MSVCRT_towupper(MSVCRT_wint_t); int __cdecl MSVCRT__iswalnum_l(MSVCRT_wchar_t, MSVCRT__locale_t); +int __cdecl MSVCRT__iswdigit_l(MSVCRT_wchar_t, MSVCRT__locale_t); /* Maybe one day we'll enable the invalid parameter handlers with the full set of information (msvcrXXd) * #define MSVCRT_INVALID_PMT(x) MSVCRT_call_invalid_parameter_handler(x, __FUNCTION__, __FILE__, __LINE__, 0) diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index dc3048469dd..273ced9cd7b 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -597,7 +597,7 @@ @ cdecl _ismbcalpha(long) # stub _ismbcalpha_l(long ptr) @ cdecl _ismbcdigit(long) -# stub _ismbcdigit_l(long ptr) +@ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) # stub _ismbcgraph_l(long ptr) @ cdecl _ismbchira(long) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index b6d3a033e5f..9bd48324438 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -469,7 +469,7 @@ @ stub _ismbcblank @ stub _ismbcblank_l @ cdecl _ismbcdigit(long) -@ stub _ismbcdigit_l +@ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) @ stub _ismbcgraph_l @ cdecl _ismbchira(long) @@ -1068,7 +1068,7 @@ @ stub _o__ismbcblank @ stub _o__ismbcblank_l @ cdecl _o__ismbcdigit(long) _ismbcdigit -@ stub _o__ismbcdigit_l +@ cdecl _o__ismbcdigit_l(long ptr) _ismbcdigit_l @ cdecl _o__ismbcgraph(long) _ismbcgraph @ stub _o__ismbcgraph_l @ cdecl _o__ismbchira(long) _ismbchira