[HarfBuzz] Change in HarfBuzz after version 0.90 ?
mhosken at gmail.com
Thu Dec 26 05:52:21 PST 2013
> When shaping text, the correct ordering for your typical
> consonant-vowel-consonant syllable is: BASE_CONSONANT + (i)VOWEL_MARK +
> (ii) TONE MARK +(iv) U+1A60 SAKOT + (iii) SUBJOINED CONSONANT
> With Harfbuzz 0.90, I get the shaping that I expect as shown in the first
> image. But with the most recent versions of HarfBuzz including the latest
> version (sorry, I don't know at which intermediate version things changed),
> I get incorrect shaping, as shown in the 2nd image. These flaws are
> apparent in the latest versions of Firefox too (which presumably contains
> the latest HarfBuzz library unchanged in some statically linked form I
> guess ... )
> Can someone please give me a hint about what changed in HarfBuzz? Is this a
> bug in HarfBuzz? Or is some definition in my OpenType feature file not
> correct after changes were made in HarfBuzz?
The answer is simple but insidious.
The normalization for Tai Tham is somewhat broken in that sakot has been given a lower combining order than a tone mark. Thus when text is normalized, the sequence cons + vowel + tone + sakot + cons, gets reordered to cons + vowel + sakot + tone + cons. I have tried very hard to get the UTC to fix this, but they absolutely refuse on the basis of stability. (Please don't get me started!).
The best answer is to have the Tai Tham shaper re-reorder the wrong normalised order of sakot + tone + cons, back to tone + sakot + cons before allocating features, etc.
More information about the HarfBuzz