aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-09-28 15:03:30 +0100
committereunhhu <[email protected]>2026-09-28 15:03:30 +0100
commit5788d7e5bd6a26421346d69ae517502527940a0b (patch)
treeee540bf287a41bef4b052f43b4fe9c9c48099776 /lib
parentb5659615bd770fd641f389e5fde8ae97be505fca (diff)
downloadvega-5788d7e5bd6a26421346d69ae517502527940a0b.tar.gz
vega-5788d7e5bd6a26421346d69ae517502527940a0b.zip
Shape the Universal Shaping Engine's scripts as HarfBuzz does
The USE shaper, from HarfBuzz 10.2's source, for Sinhala, Tibetan, Javanese, Balinese, Mongolian and the rest of its eighty-odd scripts (and Indic fonts with the new dev3-style tags). The syllable machine reads past CGJs and ZWNJs that marks follow; rphf goes on each syllable's first glyphs and records the repha it made, pref records its pre-base glyph, with substitution marks cleared between; a repha moves before the first post-base glyph and pre-base vowels move back. Scripts that join like Arabic take Arabic's forms (Mongolian's free variation selectors their base's), the others join syllable to syllable. Marks lose their advances before GPOS. text/syllabic.py carries HarfBuzz's compressed USE table over as it is, compiles the USE grammar with the others (100,000 random runs against Ragel's machine: no syllable differs), and checks at compile time that the categories syllabic.h names are the machines' own. Noto Sans Sinhala, Javanese, Balinese, Mongolian, Noto Serif Tibetan, FreeSerif's Sinhala and Unifont's five shape as HarfBuzz does at 5,000 runs a plan; all installed fonts (1,748 plans) and 21 Noto fonts too.
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions