[USE] Only reorder the first component of a split left mark
authorBehdad Esfahbod <behdad@behdad.org>
Tue, 21 Jul 2015 17:24:21 +0000 (18:24 +0100)
committerBehdad Esfahbod <behdad@behdad.org>
Tue, 21 Jul 2015 17:24:21 +0000 (18:24 +0100)
src/hb-ot-shape-complex-use.cc

index 208da62..309f221 100644 (file)
@@ -364,7 +364,10 @@ reorder_syllable (const hb_ot_shape_plan_t *plan,
       else
        j = i;
     }
-    else if (((flag) & (FLAG (USE_VPre) | FLAG (USE_VMPre))) && j < i)
+    else if (((flag) & (FLAG (USE_VPre) | FLAG (USE_VMPre))) &&
+            /* Only move the first component of a MultipleSubst. */
+            0 == _hb_glyph_info_get_lig_comp (&info[i]) &&
+            j < i)
     {
       hb_glyph_info_t t = info[i];
       memmove (&info[j + 1], &info[j], (i - j) * sizeof (info[0]));