[HarfBuzz] Class value of combining marks

Khaled Hosny khaledhosny at eglug.org
Tue Sep 10 05:26:54 PDT 2013


Hi Behdad,

A while ago I noticed, to my surprise, that combining marks take the
class value of their base glyphs. I have no idea why it is done that
way (Uniscribe seems to does this, too).

Since cluster values are used to do reverse glyph to input character
mapping, this has the implication that it is not possible apply any
specific text attributes to the combining marks, like coloring them
which have few applications in Arabic and Hebrew, at least (there are
bugs open against Pango[1] and Firefox[2] for this, but I know realize
it is actually a HarfBuzz issue).

There is also discrepancy between backends, the Graphite backend does
not do this, nor the Core Text backend (though the last one is less
important).


I’m not sure what is the best way to move forward, decoupling the
cluster value of combining marks from its base has the benefit of
automatically fixed HarfBuzz clients, but it might break whatever the
use case of that coupling in the first place. On the other hand, having
a dedicated API for character ↔ glyph mapping (like Core Text or ICU
Layout Engine) does not affect backward compatibility, but the clients
will have to be modified to take advantage of it.

Regards,
Khaled

1. https://bugzilla.gnome.org/show_bug.cgi?id=541608
2. https://bugzilla.mozilla.org/show_bug.cgi?id=729993



More information about the HarfBuzz mailing list