diff --git a/dlls/msvcrt/ctype.c b/dlls/msvcrt/ctype.c index 7cfba52c9f4..5a7d3450eda 100644 --- a/dlls/msvcrt/ctype.c +++ b/dlls/msvcrt/ctype.c @@ -397,7 +397,10 @@ int CDECL isxdigit(int c) */ int CDECL _isblank_l(int c, _locale_t locale) { - return c == '\t' || _isctype_l( c, _BLANK, locale ); +#if _MSVCR_VER < 140 + if (c == '\t') return _BLANK; +#endif + return _isctype_l( c, _BLANK, locale ); } /********************************************************************* diff --git a/dlls/ucrtbase/tests/misc.c b/dlls/ucrtbase/tests/misc.c index f5dbac70ddb..60f569c69ff 100644 --- a/dlls/ucrtbase/tests/misc.c +++ b/dlls/ucrtbase/tests/misc.c @@ -538,16 +538,19 @@ static void test_lldiv(void) static void test_isblank(void) { - int c; + int c, r; for(c = 0; c <= 0xff; c++) { - if(c == '\t' || c == ' ') { - if(c == '\t') - ok(!_isctype(c, _BLANK), "tab shouldn't be blank\n"); - else - ok(_isctype(c, _BLANK), "space should be blank\n"); + if(c == '\t') { + ok(!_isctype(c, _BLANK), "tab shouldn't be blank\n"); ok(isblank(c), "%d should be blank\n", c); - ok(_isblank_l(c, NULL), "%d should be blank\n", c); + r = _isblank_l(c, NULL); + ok(!r || broken(r == _BLANK), "tab shouldn't be blank (got %x)\n", r); + } else if(c == ' ') { + ok(_isctype(c, _BLANK), "space should be blank\n"); + ok(isblank(c), "%d should be blank\n", c); + r = _isblank_l(c, NULL); + ok(r == _BLANK, "space should be blank (got %x)\n", r); } else { ok(!_isctype(c, _BLANK), "%d shouldn't be blank\n", c); ok(!isblank(c), "%d shouldn't be blank\n", c);