[HarfBuzz] Broken Arabic mark/mark interaction

Khaled Hosny khaledhosny at eglug.org
Wed Aug 24 23:45:12 PDT 2011

After the introduction of canonical reordering of combining marks
(commit 34c22f8), I'm no longer able to do mark/mark substitution or
positioning for mark sequences that involve shadda as a first mark (or
most interesting sequences at least).

After some digging, it turned out that shadda have a ccc=33 while most
Arabic marks that combine with it have a lower ccc value, which results
in the shadda being reordered after the other mark which,
unsurprisingly, breaks my contextual substitution and mkmk anchors.

The issue seems to be quite known, there is even two FAQ entries for it:

My font substitutes certain marks when following shadda by smaller
version, and uses mkmk anchors to properly position them. I could switch
to using ligatures and treat <shadda><mark> and <mark><shadda> the same,
but this is very inefficient since I want to support sequences up to
three marks after shadda at least (and in various combinations), also I
was trying to avoid ligatures at all in my font for several reasons, and
I suspect that my font is not the only affected font.


 Khaled Hosny

More information about the HarfBuzz mailing list