[HarfBuzz] HEH GOAL WITH HAMZA ABOVE(0x06C2) error in arabic
Jonathan Kew
jfkthame at googlemail.com
Thu Jul 12 00:45:31 PDT 2012
On 12/7/12 04:12, datao zhang wrote:
> Hi Behdad:
> When i try to draw the text "U+0628,U+06C2,U+06C2,U+0020" with harfbuzz,
> i find it is rendered differently in windows 7. please see attachment
> file. After checking the hb-ot-shape-complex-arabic-table.hh, I found
> U+06C2 joining type was JOINING_TYPE_D (double joining). I don’t know
> why Unicode specifies it double joining, it really does not make any
> sense. At least, when render the text, it should be treated as single
> joining type.
U+06C2 is classified as double-joining because it has a canonical
decomposition to <U+06C1, U+0654>, and U+06C1 is double-joining. If
U+06C2 were right-joining, we'd have a situation where equivalent text
sequences would have different joining behaviors, so that a canonical
normalization process might unexpectedly alter the rendering.
While I agree that the various HEH-related characters in Unicode are a
confusing mess, the various compatibility and stability requirements, as
well as the different usage patterns needed for various languages and
regions, make it difficult to see how we could "fix" them.
The broken-looking result you're getting from harfbuzz happens because
the font used does not have a 'medi' glyph for the U+06C2 character.
This is a font bug.
To reliably produce the "windows 7" result shown in your attachment, I
believe the correct text sequence would be <U+0628, U+06C2, U+200C, U+06C2>.
JK
More information about the HarfBuzz
mailing list