Skip over multiple variation selectors in a row

This commit is contained in:
Behdad Esfahbod 2013-06-06 20:17:32 -04:00
parent 7235f33f9e
commit c7a8491720
1 changed files with 6 additions and 0 deletions

View File

@ -219,6 +219,12 @@ handle_variation_selector_cluster (const hb_ot_shape_normalize_context_t *c, uns
/* The next two lines are some ugly lines... But work. */ /* The next two lines are some ugly lines... But work. */
c->font->get_glyph (buffer->cur().codepoint, buffer->cur(+1).codepoint, &buffer->cur().glyph_index()); c->font->get_glyph (buffer->cur().codepoint, buffer->cur(+1).codepoint, &buffer->cur().glyph_index());
buffer->replace_glyphs (2, 1, &buffer->cur().codepoint); buffer->replace_glyphs (2, 1, &buffer->cur().codepoint);
/* Skip any further variation selectors. */
while (buffer->idx < end && unlikely (buffer->unicode->is_variation_selector (buffer->cur().codepoint)))
{
set_glyph (buffer->cur(), c->font);
buffer->next_glyph ();
}
} else { } else {
set_glyph (buffer->cur(), c->font); set_glyph (buffer->cur(), c->font);
buffer->next_glyph (); buffer->next_glyph ();