app_server: update list of default ignorable code points

Update as per Unicode 14 (and draft 15)
Include the noncharacters. We don't really want the .notdef glyph for
them, except for U+FDD1 which we have reserved internally to force it
from webkit.

Fixes #17593

Change-Id: I5a62bf0e7753adacc81ea19b3351deb58d5c0653
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4984
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
This commit is contained in:
Máximo Castañeda 2022-02-19 21:12:38 +01:00 committed by Adrien Destugues
parent 50507c9527
commit 20b50a5cb4

View File

@ -202,8 +202,6 @@ render_as_space(uint32 glyphCode)
// no-break space // no-break space
|| (glyphCode == 0x1680) || (glyphCode == 0x1680)
// ogham space mark // ogham space mark
|| (glyphCode == 0x180e)
// mongolian vowel separator
|| (glyphCode >= 0x2000 && glyphCode <= 0x200a) || (glyphCode >= 0x2000 && glyphCode <= 0x200a)
// en quand, hair space // en quand, hair space
|| (glyphCode >= 0x2028 && glyphCode <= 0x2029) || (glyphCode >= 0x2028 && glyphCode <= 0x2029)
@ -222,17 +220,20 @@ inline bool
render_as_zero_width(uint32 glyphCode) render_as_zero_width(uint32 glyphCode)
{ {
// ignorable chars: render as invisible // ignorable chars: render as invisible
// as per Unicode DerivedCoreProperties.txt: Default_Ignorable_Code_Point // as per Unicode DerivedCoreProperties.txt: Default_Ignorable_Code_Point.
// We also don't want tofu for noncharacters if we ever get one.
return (glyphCode == 0x00ad) return (glyphCode == 0x00ad)
// soft hyphen // soft hyphen
|| (glyphCode == 0x034f) || (glyphCode == 0x034f)
// combining grapheme joiner // combining grapheme joiner
|| (glyphCode == 0x061c)
// arabic letter mark
|| (glyphCode >= 0x115f && glyphCode <= 0x1160) || (glyphCode >= 0x115f && glyphCode <= 0x1160)
// hangul fillers // hangul fillers
|| (glyphCode >= 0x17b4 && glyphCode <= 0x17b5) || (glyphCode >= 0x17b4 && glyphCode <= 0x17b5)
// ignorable khmer vowels // ignorable khmer vowels
|| (glyphCode >= 0x180b && glyphCode <= 0x180d) || (glyphCode >= 0x180b && glyphCode <= 0x180f)
// variation selectors // mongolian variation selectors and vowel separator
|| (glyphCode >= 0x200b && glyphCode <= 0x200f) || (glyphCode >= 0x200b && glyphCode <= 0x200f)
// zero width space, cursive joiners, ltr marks // zero width space, cursive joiners, ltr marks
|| (glyphCode >= 0x202a && glyphCode <= 0x202e) || (glyphCode >= 0x202a && glyphCode <= 0x202e)
@ -249,10 +250,19 @@ render_as_zero_width(uint32 glyphCode)
// halfwidth hangul filler // halfwidth hangul filler
|| (glyphCode >= 0xfff0 && glyphCode <= 0xfff8) || (glyphCode >= 0xfff0 && glyphCode <= 0xfff8)
// reserved // reserved
|| (glyphCode >= 0x1bca0 && glyphCode <= 0x1bca3)
// shorthand format controls
|| (glyphCode >= 0x1d173 && glyphCode <= 0x1d17a) || (glyphCode >= 0x1d173 && glyphCode <= 0x1d17a)
// musical symbols // musical symbols
|| (glyphCode >= 0xe0000 && glyphCode <= 0xe01ef) || (glyphCode >= 0xe0000 && glyphCode <= 0xe01ef)
// variation selectors, tag space, reserved // variation selectors, tag space, reserved
|| (glyphCode >= 0xe01f0 && glyphCode <= 0xe0fff)
// reserved
|| ((glyphCode & 0xffff) >= 0xfffe)
// noncharacters
|| ((glyphCode >= 0xfdd0 && glyphCode <= 0xfdef)
&& glyphCode != 0xfdd1)
// noncharacters; 0xfdd1 is used internally to force .notdef glyph
; ;
} }