Fix shape to presentation forms font check

As reported by Jonathan Kew on the list.
This commit is contained in:
Behdad Esfahbod 2012-04-11 14:37:53 -04:00
parent 6062f5f014
commit 4a1e02ef79
1 changed files with 6 additions and 3 deletions

View File

@ -211,9 +211,12 @@ arabic_fallback_shape (hb_font_t *font, hb_buffer_t *buffer)
hb_codepoint_t glyph;
/* Shape to presentation forms */
for (unsigned int i = 0; i < count; i++)
if (hb_font_get_glyph (font, buffer->info[i].codepoint, 0, &glyph))
buffer->info[i].codepoint = get_arabic_shape (buffer->info[i].codepoint, buffer->info[i].arabic_shaping_action());
for (unsigned int i = 0; i < count; i++) {
hb_codepoint_t u = buffer->info[i].codepoint;
hb_codepoint_t shaped = get_arabic_shape (u, buffer->info[i].arabic_shaping_action());
if (shaped != u && hb_font_get_glyph (font, shaped, 0, &glyph))
buffer->info[i].codepoint = shaped;
}
/* Mandatory ligatures */
buffer->clear_output ();