diff options
Diffstat (limited to 'pango/pango-emoji.c')
-rw-r--r-- | pango/pango-emoji.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/pango/pango-emoji.c b/pango/pango-emoji.c index 0e332dff..29472452 100644 --- a/pango/pango-emoji.c +++ b/pango/pango-emoji.c @@ -253,6 +253,12 @@ _pango_emoji_iter_next (PangoEmojiIter *iter) if (iter->is_emoji == PANGO_EMOJI_TYPE_IS_EMOJI (current_emoji_type)) { iter->is_emoji = !PANGO_EMOJI_TYPE_IS_EMOJI (current_emoji_type); + + /* Make sure we make progress. Weird sequences, like a VC15 followed + * by VC16, can trick us into stalling otherwise. */ + if (iter->start == iter->end) + iter->end = g_utf8_next_char (iter->end); + return TRUE; } } |