[subset] Add special case handling of bit 57 in os2 ulUnicodeRange.
diff --git a/src/hb-ot-os2-table.hh b/src/hb-ot-os2-table.hh
index 63e9726..7325e93 100644
--- a/src/hb-ot-os2-table.hh
+++ b/src/hb-ot-os2-table.hh
@@ -90,6 +90,13 @@
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 68dfe07..16d01ef 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.",