From: Jeff Smith Subject: [PATCH 3/3] make_unicode: Mark tab and nbsp as not blank in wine_wctype_table. Message-Id: <20200101074616.2138678-3-whydoubt@gmail.com> Date: Wed, 1 Jan 2020 01:46:16 -0600 In-Reply-To: <20200101074616.2138678-1-whydoubt@gmail.com> References: <20200101074616.2138678-1-whydoubt@gmail.com> Keep them marked as blank in wctype_table (used by IsCharBlankW) though. Signed-off-by: Jeff Smith --- dlls/ucrtbase/tests/misc.c | 14 ++++++-------- libs/port/wctype.c | 4 ++-- tools/make_unicode | 5 ++++- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/dlls/ucrtbase/tests/misc.c b/dlls/ucrtbase/tests/misc.c index 6b5977c4d8..2accee2dac 100644 --- a/dlls/ucrtbase/tests/misc.c +++ b/dlls/ucrtbase/tests/misc.c @@ -649,8 +649,8 @@ static void test_isblank(void) for(c = 0; c <= 0xffff; c++) { if(c == '\t' || c == ' ' || c == 0x3000 || c == 0xfeff) { if(c == '\t') { - todo_wine ok(!p_iswctype(c, _BLANK), "tab shouldn't be blank\n", c); - todo_wine ok(!p__iswctype_l(c, _BLANK, NULL), "tab shouldn't be blank\n"); + ok(!p_iswctype(c, _BLANK), "tab shouldn't be blank\n", c); + ok(!p__iswctype_l(c, _BLANK, NULL), "tab shouldn't be blank\n"); } else { ok(p_iswctype(c, _BLANK), "%d should be blank\n", c); ok(p__iswctype_l(c, _BLANK, NULL), "%d should be blank\n", c); @@ -658,12 +658,10 @@ static void test_isblank(void) ok(p_iswblank(c), "%d should be blank\n", c); ok(p__iswblank_l(c, NULL), "%d should be blank\n", c); } else { - todo_wine_if(c == 0xa0) { - ok(!p_iswctype(c, _BLANK), "%d shouldn't be blank\n", c); - ok(!p__iswctype_l(c, _BLANK, NULL), "%d shouldn't be blank\n", c); - ok(!p_iswblank(c), "%d shouldn't be blank\n", c); - ok(!p__iswblank_l(c, NULL), "%d shouldn't be blank\n", c); - } + ok(!p_iswctype(c, _BLANK), "%d shouldn't be blank\n", c); + ok(!p__iswctype_l(c, _BLANK, NULL), "%d shouldn't be blank\n", c); + ok(!p_iswblank(c), "%d shouldn't be blank\n", c); + ok(!p__iswblank_l(c, NULL), "%d shouldn't be blank\n", c); } } } diff --git a/libs/port/wctype.c b/libs/port/wctype.c index 5439e7db57..8c4dff4479 100644 --- a/libs/port/wctype.c +++ b/libs/port/wctype.c @@ -40,7 +40,7 @@ const unsigned short wine_wctype_table[17152] = 0x2800, 0x1200, 0x3d00, 0x3e00, 0x3f00, 0x4000, 0x4100, 0x4200, /* values */ 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, - 0xe220, 0x9268, 0x8228, 0x9228, 0xa228, 0x8228, 0xe220, 0xe220, + 0xe220, 0x9228, 0x8228, 0x9228, 0xa228, 0x8228, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0x8220, 0x8220, 0x8220, 0x9220, 0xa248, 0xb210, 0xb210, 0x5210, 0x5210, 0x5210, 0xb210, 0xb210, @@ -59,7 +59,7 @@ const unsigned short wine_wctype_table[17152] = 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, 0xe220, - 0x7248, 0xb210, 0x5210, 0x5210, 0x5210, 0x5210, 0xb210, 0xb210, + 0x7208, 0xb210, 0x5210, 0x5210, 0x5210, 0x5210, 0xb210, 0xb210, 0xb210, 0xb210, 0x1310, 0xb210, 0xb210, 0xe230, 0xb210, 0xb210, 0x5210, 0x5210, 0x3214, 0x3214, 0xb210, 0x1312, 0xb210, 0xb210, 0xb210, 0x3214, 0x1310, 0xb210, 0xb210, 0xb210, 0xb210, 0xb210, diff --git a/tools/make_unicode b/tools/make_unicode index 1aaeff38a4..fe426b1315 100755 --- a/tools/make_unicode +++ b/tools/make_unicode @@ -299,7 +299,7 @@ my %special_categories = "xdigit" => [ ord('0')..ord('9'),ord('A')..ord('F'),ord('a')..ord('f'), 0xff10..0xff19, 0xff21..0xff26, 0xff41..0xff46 ], "space" => [ 0x09..0x0d, 0x85 ], - "blank" => [ 0x09, 0x20, 0xa0, 0x3000, 0xfeff ], + "blank" => [ 0x20, 0x3000, 0xfeff ], "cntrl" => [ 0x070f, 0x200c, 0x200d, 0x200e, 0x200f, 0x202a, 0x202b, 0x202c, 0x202d, 0x202e, 0x206a, 0x206b, 0x206c, 0x206d, 0x206e, 0x206f, 0xfeff, @@ -2255,6 +2255,9 @@ sub dump_string_type_table($) my @table = @category_table; + $table[0x09] |= $ctype{"blank"}; + $table[0xa0] |= $ctype{"blank"}; + # add the direction in the high 4 bits of the category for (my $i = 0; $i < 65536; $i++) { -- 2.23.0