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 _______________________________________________ HarfBuzz mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/harfbuzz
