[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