Module: wine Branch: master Commit: 1750a6969becfb02f0fee9447878d4374db652ab URL: https://source.winehq.org/git/wine.git/?a=commit;h=1750a6969becfb02f0fee9447...
Author: Piotr Caban piotr@codeweavers.com Date: Thu Jul 16 15:33:32 2020 +0200
msvcrt: Add _ismbcprint_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 3ab70829ca..4f6a1f7679 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 @@ -49,7 +49,7 @@ @ cdecl _ismbclower(long) ucrtbase._ismbclower @ cdecl _ismbclower_l(long ptr) ucrtbase._ismbclower_l @ cdecl _ismbcprint(long) ucrtbase._ismbcprint -@ stub _ismbcprint_l +@ cdecl _ismbcprint_l(long ptr) ucrtbase._ismbcprint_l @ cdecl _ismbcpunct(long) ucrtbase._ismbcpunct @ stub _ismbcpunct_l @ cdecl _ismbcspace(long) ucrtbase._ismbcspace 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 22ac50e14a..c6489ab976 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 @@ -422,7 +422,7 @@ @ stub _o__ismbclower @ cdecl _o__ismbclower_l(long ptr) ucrtbase._o__ismbclower_l @ cdecl _o__ismbcprint(long) ucrtbase._o__ismbcprint -@ stub _o__ismbcprint_l +@ cdecl _o__ismbcprint_l(long ptr) ucrtbase._o__ismbcprint_l @ cdecl _o__ismbcpunct(long) ucrtbase._o__ismbcpunct @ stub _o__ismbcpunct_l @ cdecl _o__ismbcspace(long) ucrtbase._o__ismbcspace diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 30aaa302ef..f054026dd9 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -997,7 +997,7 @@ @ cdecl _ismbclower(long) @ cdecl _ismbclower_l(long ptr) @ cdecl _ismbcprint(long) -@ stub _ismbcprint_l +@ cdecl _ismbcprint_l(long ptr) @ cdecl _ismbcpunct(long) @ stub _ismbcpunct_l @ cdecl _ismbcspace(long) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 6bf022ac74..3a4ed8f6d1 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1343,7 +1343,7 @@ @ stub _ismbclower(long) @ cdecl _ismbclower_l(long ptr) @ stub _ismbcprint(long) -@ stub _ismbcprint_l +@ cdecl _ismbcprint_l(long ptr) @ cdecl _ismbcpunct(long) @ stub _ismbcpunct_l @ cdecl _ismbcspace(long) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 48d58977a7..3d295f8324 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1348,7 +1348,7 @@ @ stub _ismbclower(long) @ cdecl _ismbclower_l(long ptr) @ cdecl _ismbcprint(long) -@ stub _ismbcprint_l +@ cdecl _ismbcprint_l(long ptr) @ cdecl _ismbcpunct(long) @ stub _ismbcpunct_l @ cdecl _ismbcspace(long) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index ddf81b4858..55e43e6c51 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -669,7 +669,7 @@ @ cdecl _ismbclower(long) @ cdecl _ismbclower_l(long ptr) @ cdecl _ismbcprint(long) -@ stub _ismbcprint_l +@ cdecl _ismbcprint_l(long ptr) @ cdecl _ismbcpunct(long) @ stub _ismbcpunct_l @ cdecl _ismbcspace(long) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 9a86afb37c..55df1046f5 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -647,7 +647,7 @@ @ cdecl _ismbclower(long) @ cdecl _ismbclower_l(long ptr) @ cdecl _ismbcprint(long) -@ stub _ismbcprint_l +@ cdecl _ismbcprint_l(long ptr) @ cdecl _ismbcpunct(long) @ stub _ismbcpunct_l @ cdecl _ismbcspace(long) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index e93aafc44a..a6b5e6d4db 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -1554,13 +1554,20 @@ int CDECL _ismbcspace(unsigned int ch) return _ismbcspace_l( ch, NULL ); }
+/********************************************************************* + * _ismbcprint_l (MSVCRT.@) + */ +int CDECL _ismbcprint_l(unsigned int ch, MSVCRT__locale_t locale) +{ + return MSVCRT__iswprint_l( msvcrt_mbc_to_wc_l(ch, locale), locale ); +} + /********************************************************************* * _ismbcprint (MSVCRT.@) */ int CDECL _ismbcprint(unsigned int ch) { - MSVCRT_wchar_t wch = msvcrt_mbc_to_wc( ch ); - return (get_char_typeW( wch ) & (C1_UPPER | C1_LOWER | C1_DIGIT | C1_PUNCT | C1_ALPHA | C1_SPACE)); + return _ismbcprint_l( ch, NULL ); }
/********************************************************************* diff --git a/dlls/msvcrt/msvcrt.h b/dlls/msvcrt/msvcrt.h index 492fdf26bc..68245f6fdc 100644 --- a/dlls/msvcrt/msvcrt.h +++ b/dlls/msvcrt/msvcrt.h @@ -1207,6 +1207,7 @@ 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); int __cdecl MSVCRT__iswupper_l(MSVCRT_wchar_t, MSVCRT__locale_t); +int __cdecl MSVCRT__iswprint_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 12c4a718e8..79918ae7ab 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -615,7 +615,7 @@ @ cdecl _ismbclower(long) @ cdecl _ismbclower_l(long ptr) @ cdecl _ismbcprint(long) -# stub _ismbcprint_l(long ptr) +@ cdecl _ismbcprint_l(long ptr) @ cdecl _ismbcpunct(long) # stub _ismbcpunct_l(long ptr) @ cdecl _ismbcspace(long) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index c93d0cee04..c20e3f0b55 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -487,7 +487,7 @@ @ stub _ismbclower(long) @ cdecl _ismbclower_l(long ptr) @ cdecl _ismbcprint(long) -@ stub _ismbcprint_l +@ cdecl _ismbcprint_l(long ptr) @ cdecl _ismbcpunct(long) @ stub _ismbcpunct_l @ cdecl _ismbcspace(long) @@ -1086,7 +1086,7 @@ @ stub _o__ismbclower @ cdecl _o__ismbclower_l(long ptr) _ismbclower_l @ cdecl _o__ismbcprint(long) _ismbcprint -@ stub _o__ismbcprint_l +@ cdecl _o__ismbcprint_l(long ptr) _ismbcprint_l @ cdecl _o__ismbcpunct(long) _ismbcpunct @ stub _o__ismbcpunct_l @ cdecl _o__ismbcspace(long) _ismbcspace