[subset] Add special case handling of bit 57 in os2 ulUnicodeRange.

This commit is contained in:
Garret Rieger 2018-02-26 16:11:24 -08:00
parent ddc4f2b9fc
commit 074b5a29a1
2 changed files with 7 additions and 3 deletions

View File

@ -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));
}
}
}

View File

@ -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.",