[HarfBuzz] Regression in ZWJ handling for Indic CV ligatures

Behdad Esfahbod behdad at behdad.org
Thu Apr 4 14:36:08 PDT 2013


On 13-03-23 04:05 PM, Ian-Mathew Hornburg wrote:
> For example, because e-Oriya OT defaults to CV ligatures where
> available, the sequence <0B15, 0B3F> should result in a ligated form
> (rather than the vowel-sign positioned above). Since it’s semantically
> the same, the sequence <0B15, ZWJ, 0B3F> *should* result in the same
> output, but currently outputs the non-ligated form. The sequence
> <0B15, ZWNJ, 0B3F> correctly displays the non-ligated form.

To add more context here, there's an inherent conflict between general Unicode
principle that inserting a ZWJ should encourage ligation, and the use of ZWJ
in most of Indic parts of the standard to inhibit conjunct formation.  We
tried to implement this in HarfBuzz, by transparently skipping ZWJ in
"presentation forms" features, but respecting its presence to inhibit ligation
in "basic shaping features".  However, fonts in common circulation use (what I
call) arbitrary features to perform ligations and substitutions, which as a
result can behave incorrectly when, say, a font uses 'psts' instead of 'pstf'
to form a subjoined conjunct.  *That* is why we had to revert this change.

-- 
behdad
http://behdad.org/



More information about the HarfBuzz mailing list