diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index b6b10ba0655..f9f432fc936 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -986,7 +986,7 @@ @ stub _ismbchira_l @ cdecl _ismbckata(long) @ stub _ismbckata_l -@ stub _ismbcl0(long) +@ cdecl _ismbcl0(long) @ stub _ismbcl0_l @ stub _ismbcl1(long) @ stub _ismbcl1_l diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index b36cb3a04bd..01793c77b4f 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -1332,7 +1332,7 @@ @ stub _ismbchira_l @ cdecl _ismbckata(long) @ stub _ismbckata_l -@ stub _ismbcl0(long) +@ cdecl _ismbcl0(long) @ stub _ismbcl0_l @ stub _ismbcl1(long) @ stub _ismbcl1_l diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 77daf09ed8c..a6a08ad418d 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -1337,7 +1337,7 @@ @ stub _ismbchira_l @ cdecl _ismbckata(long) @ stub _ismbckata_l -@ stub _ismbcl0(long) +@ cdecl _ismbcl0(long) @ stub _ismbcl0_l @ stub _ismbcl1(long) @ stub _ismbcl1_l diff --git a/dlls/msvcr70/msvcr70.spec b/dlls/msvcr70/msvcr70.spec index bbfbea1f2f2..fb5aa9d791a 100644 --- a/dlls/msvcr70/msvcr70.spec +++ b/dlls/msvcr70/msvcr70.spec @@ -381,7 +381,7 @@ @ cdecl _ismbcgraph(long) @ cdecl _ismbchira(long) @ cdecl _ismbckata(long) -@ stub _ismbcl0(long) +@ cdecl _ismbcl0(long) @ stub _ismbcl1(long) @ stub _ismbcl2(long) @ cdecl _ismbclegal(long) diff --git a/dlls/msvcr71/msvcr71.spec b/dlls/msvcr71/msvcr71.spec index f9c5afedca4..b7acbfbcfb3 100644 --- a/dlls/msvcr71/msvcr71.spec +++ b/dlls/msvcr71/msvcr71.spec @@ -376,7 +376,7 @@ @ cdecl _ismbcgraph(long) @ cdecl _ismbchira(long) @ cdecl _ismbckata(long) -@ stub _ismbcl0(long) +@ cdecl _ismbcl0(long) @ stub _ismbcl1(long) @ stub _ismbcl2(long) @ cdecl _ismbclegal(long) diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 5bfa4acbf4f..fdc0667f455 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -658,7 +658,7 @@ @ stub _ismbchira_l @ cdecl _ismbckata(long) @ stub _ismbckata_l -@ stub _ismbcl0(long) +@ cdecl _ismbcl0(long) @ stub _ismbcl0_l @ stub _ismbcl1(long) @ stub _ismbcl1_l diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index e39fdee557b..cb8344cdc7d 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -636,7 +636,7 @@ @ stub _ismbchira_l @ cdecl _ismbckata(long) @ stub _ismbckata_l -@ stub _ismbcl0(long) +@ cdecl _ismbcl0(long) @ stub _ismbcl0_l @ stub _ismbcl1(long) @ stub _ismbcl1_l diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index 49d66780b4e..63be8057285 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -2443,3 +2443,17 @@ unsigned int CDECL _mbctokata(unsigned int c) return (c - 0x829f) + 0x8340 + (c >= 0x82de ? 1 : 0); return c; } + + +/********************************************************************* + * _ismbcl0 (MSVCRT.@) + */ +int CDECL _ismbcl0(unsigned int c) +{ + if(get_mbcinfo()->mbcodepage == 932) + { + /* JIS non-Kanji */ + return (c >= 0x8140 && c <= 0x889e); + } + return 0; +} diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index c23c72b6559..ee59ae6aef9 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -604,7 +604,7 @@ # stub _ismbchira_l(long ptr) @ cdecl _ismbckata(long) # stub _ismbckata_l(long ptr) -@ stub _ismbcl0(long) +@ cdecl _ismbcl0(long) # stub _ismbcl0_l(long ptr) @ stub _ismbcl1(long) # stub _ismbcl1_l(long ptr) diff --git a/dlls/msvcrt/tests/string.c b/dlls/msvcrt/tests/string.c index 04e20c16f77..1681001a86f 100644 --- a/dlls/msvcrt/tests/string.c +++ b/dlls/msvcrt/tests/string.c @@ -3193,6 +3193,29 @@ static void test__mbscmp(void) ok(ret == 1, "got %d\n", ret); } +static void test__ismbclx(void) +{ + int cp, ret; + + ret = _ismbcl0(0); + ok(!ret, "got %d\n", ret); + + cp = _setmbcp(1252); + + ret = _ismbcl0(0x8140); + ok(!ret, "got %d\n", ret); + + _setmbcp(932); + + ret = _ismbcl0(0); + ok(!ret, "got %d\n", ret); + + ret = _ismbcl0(0x8140); + ok(ret, "got %d\n", ret); + + _setmbcp(cp); +} + START_TEST(string) { char mem[100]; @@ -3308,4 +3331,5 @@ START_TEST(string) test__strnset_s(); test__wcsset_s(); test__mbscmp(); + test__ismbclx(); } diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec index 7a07b719212..ce1e24e1ef3 100644 --- a/dlls/ucrtbase/ucrtbase.spec +++ b/dlls/ucrtbase/ucrtbase.spec @@ -476,7 +476,7 @@ @ stub _ismbchira_l @ cdecl _ismbckata(long) @ stub _ismbckata_l -@ stub _ismbcl0(long) +@ cdecl _ismbcl0(long) @ stub _ismbcl0_l @ stub _ismbcl1(long) @ stub _ismbcl1_l