From 074b5a29a166d1812abc7229a71af4a3bb311536 Mon Sep 17 00:00:00 2001 From: Garret Rieger Date: Mon, 26 Feb 2018 16:11:24 -0800 Subject: [PATCH] [subset] Add special case handling of bit 57 in os2 ulUnicodeRange. --- src/hb-ot-os2-table.hh | 7 +++++++ src/test-unicode-ranges.cc | 3 --- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/hb-ot-os2-table.hh b/src/hb-ot-os2-table.hh index 63e97264..7325e93e 100644 --- a/src/hb-ot-os2-table.hh +++ b/src/hb-ot-os2-table.hh @@ -90,6 +90,13 @@ struct os2 unsigned int mask = 1 << bit_in_block; ulUnicodeRange[block].set (ulUnicodeRange[block] | mask); } + if (cp >= 0x10000 && cp <= 0x110000) + { + /* the spec says that bit 57 ("Non Plane 0") implies that there's + at least one codepoint beyond the BMP; so I also include all + the non-BMP codepoints here */ + ulUnicodeRange[2].set (ulUnicodeRange[2] | (1 << 25)); + } } } diff --git a/src/test-unicode-ranges.cc b/src/test-unicode-ranges.cc index 68dfe079..16d01ef2 100644 --- a/src/test-unicode-ranges.cc +++ b/src/test-unicode-ranges.cc @@ -31,9 +31,6 @@ void test (hb_codepoint_t cp, int bit) { - // TODO: - // Note: * Setting bit 57 implies that there is at least one codepoint beyond the Basic - // Multilingual Plane that is supported by this font. (See fontTools impl.) if (OT::hb_get_unicode_range_bit (cp) != bit) { fprintf (stderr, "got incorrect bit (%d) for cp 0x%X. Should have been %d.", -- GitLab