From 100fbeaf196515774c985ee839d0fa0695f9a6fa Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Thu, 17 Dec 2015 15:23:09 +0000 Subject: [PATCH] Fix ligature component of a mark happening after a ligature within a ligature! Say, if we are ligating "A B_C m D", then previously 'm' was being attached to 'B' in the combined A_B_C_D ligature. Now we attach it to 'C'. No test for this though :(. --- src/hb-ot-layout-gsubgpos-private.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hb-ot-layout-gsubgpos-private.hh b/src/hb-ot-layout-gsubgpos-private.hh index 11ad7e5f7..d6db00566 100644 --- a/src/hb-ot-layout-gsubgpos-private.hh +++ b/src/hb-ot-layout-gsubgpos-private.hh @@ -847,7 +847,7 @@ static inline bool ligate_input (hb_apply_context_t *c, if (!is_mark_ligature) { unsigned int this_comp = _hb_glyph_info_get_lig_comp (&buffer->cur()); if (this_comp == 0) - this_comp = 1; + this_comp = last_num_components; unsigned int new_lig_comp = components_so_far - last_num_components + MIN (this_comp, last_num_components); _hb_glyph_info_set_lig_props_for_mark (&buffer->cur(), lig_id, new_lig_comp);