summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pango/pango-emoji.c6
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;
}
}