From: Behdad Esfahbod Date: Fri, 7 Jun 2013 00:17:32 +0000 (-0400) Subject: Skip over multiple variation selectors in a row X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c7a84917208528040aaf9ad0a9a0b26aabeabc9c;p=platform%2Fupstream%2FlibHarfBuzzSharp.git Skip over multiple variation selectors in a row --- diff --git a/src/hb-ot-shape-normalize.cc b/src/hb-ot-shape-normalize.cc index 7f83d9d..51ef77b 100644 --- a/src/hb-ot-shape-normalize.cc +++ b/src/hb-ot-shape-normalize.cc @@ -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. */ c->font->get_glyph (buffer->cur().codepoint, buffer->cur(+1).codepoint, &buffer->cur().glyph_index()); 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 { set_glyph (buffer->cur(), c->font); buffer->next_glyph ();