* current glyph, the next glyph processed would in fact be the first
* one inserted."
*
- * This suggests that if DontAdvance is NOT set, we should move to
- * end+count. If it *was*, then move to end, such that newly inserted
- * glyphs are now visible.
+ * So, if DontAdvance *is* set, we move to "end", such that newly
+ * inserted glyphs are visible.
+ *
+ * If DontAdvance is *not* set, if inserted before, move past them,
+ * such that original current glyph will be skipped over by the driver.
+ * Otherwise, again, just move to "end" such that current glyph will
+ * be skipped over by driver.
+ *
+ * https://github.com/harfbuzz/harfbuzz/issues/1224
*/
- buffer->move_to ((flags & DontAdvance) ? end : end + count);
+ buffer->move_to ((flags & DontAdvance) || !before ? end : end + count);
}
if (flags & SetMark)