From 960fa21762484d3014a6778a7673f15acf2d34bb Mon Sep 17 00:00:00 2001 From: eunhhu Date: Mon, 28 Sep 2026 16:04:05 +0100 Subject: Map characters as HarfBuzz maps them, not as it lists them The shaping section's character map came from hb_face_collect_unicodes. HarfBuzz's own suite showed where that list and its mapping part: it cuts a format 13 map short (AdobeBlank2's whole Unicode to one glyph), and a symbol map (3,0) it searches through the private use area, Latin and, in an old Arabic font, Arabic too. Now every code point is asked with hb_font_get_nominal_glyph (about 30 ms a font) and the map carried as groups: codes going to consecutive glyphs, or all to one (12 bytes each, so a format 13 map stays small). HarfBuzz's suite: 5011 of 5199 cases the same (1355 before). The installed fonts (213) and the Noto ones (21) still shape as HarfBuzz does on random runs. --- text/harfbuzz-suite.known | 12 ------------ 1 file changed, 12 deletions(-) (limited to 'text/harfbuzz-suite.known') diff --git a/text/harfbuzz-suite.known b/text/harfbuzz-suite.known index a0436bb..f6d9b6d 100644 --- a/text/harfbuzz-suite.known +++ b/text/harfbuzz-suite.known @@ -6,18 +6,6 @@ text-rendering-tests/MORX-* # AAT in-house/aat-* # AAT -# The character map made from what HarfBuzz lists (hb_face_collect_unicodes), -# not from how it maps: a format 13 map it lists cut short, a symbol map -# whose Latin and Arabic it maps to the private use area. -in-house/emoji-clusters.tests:* # cmap format 13 -text-rendering-tests/CMAP-3.tests:1 # cmap -text-rendering-tests/CMAP-3.tests:11 # cmap -in-house/arabic-fallback-shaping.tests:7 # symbol cmap, Arabic PUA -in-house/arabic-fallback-shaping.tests:8 # symbol cmap, Arabic PUA -in-house/arabic-fallback-shaping.tests:9 # symbol cmap, Arabic PUA -in-house/arabic-fallback-shaping.tests:10 # symbol cmap, Arabic PUA -in-house/arabic-fallback-shaping.tests:11 # symbol cmap, Arabic PUA - # Variation selectors (cmap format 14). text-rendering-tests/CMAP-1.tests:2 # cmap format 14 text-rendering-tests/CMAP-1.tests:3 # cmap format 14 -- cgit v1.2.3