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 06467a76d22..0137c7e649f 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 @@ -33,7 +33,7 @@ @ cdecl _ismbcdigit(long) ucrtbase._ismbcdigit @ cdecl _ismbcdigit_l(long ptr) ucrtbase._ismbcdigit_l @ cdecl _ismbcgraph(long) ucrtbase._ismbcgraph -@ stub _ismbcgraph_l +@ cdecl _ismbcgraph_l(long ptr) ucrtbase._ismbcgraph_l @ cdecl _ismbchira(long) ucrtbase._ismbchira @ stub _ismbchira_l @ cdecl _ismbckata(long) ucrtbase._ismbckata 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 90ae1826351..6ddcbe2c7a0 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 @@ -406,7 +406,7 @@ @ cdecl _o__ismbcdigit(long) ucrtbase._o__ismbcdigit @ cdecl _o__ismbcdigit_l(long ptr) ucrtbase._o__ismbcdigit_l @ cdecl _o__ismbcgraph(long) ucrtbase._o__ismbcgraph -@ stub _o__ismbcgraph_l +@ cdecl _o__ismbcgraph_l(long ptr) ucrtbase._o__ismbcgraph_l @ cdecl _o__ismbchira(long) ucrtbase._o__ismbchira @ stub _o__ismbchira_l @ cdecl _o__ismbckata(long) ucrtbase._o__ismbckata diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 6a0a54aee2d..9d78aa042fa 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -981,7 +981,7 @@ @ cdecl _ismbcdigit(long) @ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) -@ stub _ismbcgraph_l +@ cdecl _ismbcgraph_l(long ptr) @ cdecl _ismbchira(long) @ stub _ismbchira_l @ cdecl _ismbckata(long) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index a2e63aab460..1512804543c 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1327,7 +1327,7 @@ @ cdecl _ismbcdigit(long) @ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) -@ stub _ismbcgraph_l +@ cdecl _ismbcgraph_l(long ptr) @ cdecl _ismbchira(long) @ stub _ismbchira_l @ cdecl _ismbckata(long) diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 073741e76f9..d8be0af00d7 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1332,7 +1332,7 @@ @ cdecl _ismbcdigit(long) @ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) -@ stub _ismbcgraph_l +@ cdecl _ismbcgraph_l(long ptr) @ cdecl _ismbchira(long) @ stub _ismbchira_l @ cdecl _ismbckata(long) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 5280a38b878..513ed375e15 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -653,7 +653,7 @@ @ cdecl _ismbcdigit(long) @ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) -@ stub _ismbcgraph_l +@ cdecl _ismbcgraph_l(long ptr) @ cdecl _ismbchira(long) @ stub _ismbchira_l @ cdecl _ismbckata(long) diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index fefcfa76b0a..e39ecb900d6 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -631,7 +631,7 @@ @ cdecl _ismbcdigit(long) @ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) -@ stub _ismbcgraph_l +@ cdecl _ismbcgraph_l(long ptr) @ cdecl _ismbchira(long) @ stub _ismbchira_l @ cdecl _ismbckata(long) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index c6caab19f8e..813092a12ff 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -1443,13 +1443,20 @@ int CDECL _ismbcdigit(unsigned int ch) return _ismbcdigit_l( ch, NULL ); } +/********************************************************************* + * _ismbcgraph_l(MSVCRT.@) + */ +int CDECL _ismbcgraph_l(unsigned int ch, MSVCRT__locale_t locale) +{ + return MSVCRT__iswgraph_l( msvcrt_mbc_to_wc_l(ch, locale), locale ); +} + /********************************************************************* * _ismbcgraph(MSVCRT.@) */ int CDECL _ismbcgraph(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)); + return _ismbcgraph_l( ch, NULL ); } /********************************************************************* diff --git a/dlls/msvcrt/msvcrt.h b/dlls/msvcrt/msvcrt.h index 973b9288887..ffd417be4eb 100644 --- a/dlls/msvcrt/msvcrt.h +++ b/dlls/msvcrt/msvcrt.h @@ -1203,6 +1203,7 @@ 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); +int __cdecl MSVCRT__iswgraph_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 273ced9cd7b..477afdd2525 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -599,7 +599,7 @@ @ cdecl _ismbcdigit(long) @ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) -# stub _ismbcgraph_l(long ptr) +@ cdecl _ismbcgraph_l(long ptr) @ cdecl _ismbchira(long) # stub _ismbchira_l(long ptr) @ cdecl _ismbckata(long) diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 9bd48324438..9d4f557c327 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -471,7 +471,7 @@ @ cdecl _ismbcdigit(long) @ cdecl _ismbcdigit_l(long ptr) @ cdecl _ismbcgraph(long) -@ stub _ismbcgraph_l +@ cdecl _ismbcgraph_l(long ptr) @ cdecl _ismbchira(long) @ stub _ismbchira_l @ cdecl _ismbckata(long) @@ -1070,7 +1070,7 @@ @ cdecl _o__ismbcdigit(long) _ismbcdigit @ cdecl _o__ismbcdigit_l(long ptr) _ismbcdigit_l @ cdecl _o__ismbcgraph(long) _ismbcgraph -@ stub _o__ismbcgraph_l +@ cdecl _o__ismbcgraph_l(long ptr) _ismbcgraph_l @ cdecl _o__ismbchira(long) _ismbchira @ stub _o__ismbchira_l @ cdecl _o__ismbckata(long) _ismbckata