Module: wine Branch: master Commit: 1ad209428442e5c571b8a8478c3821e6c303b3a9 URL: https://source.winehq.org/git/wine.git/?a=commit;h=1ad209428442e5c571b8a8478...
Author: Piotr Caban piotr@codeweavers.com Date: Thu Jul 16 15:33:15 2020 +0200
msvcrt: Add _ismbclower_l implementation.
Signed-off-by: Piotr Caban piotr@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
.../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 4d63b2fa59..1131c6876e 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 @@ -47,7 +47,7 @@ @ cdecl _ismbclegal(long) ucrtbase._ismbclegal @ cdecl _ismbclegal_l(long ptr) ucrtbase._ismbclegal_l @ cdecl _ismbclower(long) ucrtbase._ismbclower -@ stub _ismbclower_l +@ cdecl _ismbclower_l(long ptr) ucrtbase._ismbclower_l @ cdecl _ismbcprint(long) ucrtbase._ismbcprint @ stub _ismbcprint_l @ cdecl _ismbcpunct(long) ucrtbase._ismbcpunct 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 264d695496..b5b2aa783a 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 @@ -420,7 +420,7 @@ @ cdecl _o__ismbclegal(long) ucrtbase._o__ismbclegal @ cdecl _o__ismbclegal_l(long ptr) ucrtbase._o__ismbclegal_l @ stub _o__ismbclower -@ stub _o__ismbclower_l +@ cdecl _o__ismbclower_l(long ptr) ucrtbase._o__ismbclower_l @ cdecl _o__ismbcprint(long) ucrtbase._o__ismbcprint @ stub _o__ismbcprint_l @ cdecl _o__ismbcpunct(long) ucrtbase._o__ismbcpunct diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index c308e0d9ae..cf1b51a4a9 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -995,7 +995,7 @@ @ cdecl _ismbclegal(long) @ cdecl _ismbclegal_l(long ptr) @ cdecl _ismbclower(long) -@ stub _ismbclower_l +@ cdecl _ismbclower_l(long ptr) @ cdecl _ismbcprint(long) @ stub _ismbcprint_l @ cdecl _ismbcpunct(long) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 1d01c624a6..d3bd29417c 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1341,7 +1341,7 @@ @ cdecl _ismbclegal(long) @ cdecl _ismbclegal_l(long ptr) @ stub _ismbclower(long) -@ stub _ismbclower_l +@ cdecl _ismbclower_l(long ptr) @ stub _ismbcprint(long) @ stub _ismbcprint_l @ cdecl _ismbcpunct(long) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 7548f62b6d..604830ac60 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1346,7 +1346,7 @@ @ cdecl _ismbclegal(long) @ cdecl _ismbclegal_l(long ptr) @ stub _ismbclower(long) -@ stub _ismbclower_l +@ cdecl _ismbclower_l(long ptr) @ cdecl _ismbcprint(long) @ stub _ismbcprint_l @ cdecl _ismbcpunct(long) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 322fcfb679..ca668cda12 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -667,7 +667,7 @@ @ cdecl _ismbclegal(long) @ cdecl _ismbclegal_l(long ptr) @ cdecl _ismbclower(long) -@ stub _ismbclower_l +@ cdecl _ismbclower_l(long ptr) @ cdecl _ismbcprint(long) @ stub _ismbcprint_l @ cdecl _ismbcpunct(long) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index d6bd5fbfa5..77a9514271 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -645,7 +645,7 @@ @ cdecl _ismbclegal(long) @ cdecl _ismbclegal_l(long ptr) @ cdecl _ismbclower(long) -@ stub _ismbclower_l +@ cdecl _ismbclower_l(long ptr) @ cdecl _ismbcprint(long) @ stub _ismbcprint_l @ cdecl _ismbcpunct(long) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index 73bc45c63b..dccfce4448 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -1475,13 +1475,20 @@ int CDECL _ismbcalpha(unsigned int ch) return _ismbcalpha_l( ch, NULL ); }
+/********************************************************************* + * _ismbclower_l (MSVCRT.@) + */ +int CDECL _ismbclower_l(unsigned int ch, MSVCRT__locale_t locale) +{ + return MSVCRT__iswlower_l( msvcrt_mbc_to_wc_l(ch, locale), locale ); +} + /********************************************************************* * _ismbclower (MSVCRT.@) */ int CDECL _ismbclower(unsigned int ch) { - MSVCRT_wchar_t wch = msvcrt_mbc_to_wc( ch ); - return (get_char_typeW( wch ) & C1_UPPER); + return _ismbclower_l( ch, NULL ); }
/********************************************************************* diff --git a/dlls/msvcrt/msvcrt.h b/dlls/msvcrt/msvcrt.h index dc51dfa926..a5a1bf64bc 100644 --- a/dlls/msvcrt/msvcrt.h +++ b/dlls/msvcrt/msvcrt.h @@ -1205,6 +1205,7 @@ int __cdecl MSVCRT__iswalnum_l(MSVCRT_wchar_t, MSVCRT__locale_t); int __cdecl MSVCRT__iswdigit_l(MSVCRT_wchar_t, MSVCRT__locale_t); int __cdecl MSVCRT__iswgraph_l(MSVCRT_wchar_t, MSVCRT__locale_t); int __cdecl MSVCRT__iswalpha_l(MSVCRT_wchar_t, MSVCRT__locale_t); +int __cdecl MSVCRT__iswlower_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 e347367c75..bcea57a7e3 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -613,7 +613,7 @@ @ cdecl _ismbclegal(long) @ cdecl _ismbclegal_l(long ptr) @ cdecl _ismbclower(long) -# stub _ismbclower_l(long ptr) +@ cdecl _ismbclower_l(long ptr) @ cdecl _ismbcprint(long) # stub _ismbcprint_l(long ptr) @ cdecl _ismbcpunct(long) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 55bca3c414..68b61fece9 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -485,7 +485,7 @@ @ cdecl _ismbclegal(long) @ cdecl _ismbclegal_l(long ptr) @ stub _ismbclower(long) -@ stub _ismbclower_l +@ cdecl _ismbclower_l(long ptr) @ cdecl _ismbcprint(long) @ stub _ismbcprint_l @ cdecl _ismbcpunct(long) @@ -1084,7 +1084,7 @@ @ cdecl _o__ismbclegal(long) _ismbclegal @ cdecl _o__ismbclegal_l(long ptr) _ismbclegal_l @ stub _o__ismbclower -@ stub _o__ismbclower_l +@ cdecl _o__ismbclower_l(long ptr) _ismbclower_l @ cdecl _o__ismbcprint(long) _ismbcprint @ stub _o__ismbcprint_l @ cdecl _o__ismbcpunct(long) _ismbcpunct