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 :(.
This commit is contained in:
Behdad Esfahbod 2015-12-17 15:23:09 +00:00
parent 2f02fc79a5
commit 100fbeaf19
1 changed files with 1 additions and 1 deletions

View File

@ -847,7 +847,7 @@ static inline bool ligate_input (hb_apply_context_t *c,
if (!is_mark_ligature) { if (!is_mark_ligature) {
unsigned int this_comp = _hb_glyph_info_get_lig_comp (&buffer->cur()); unsigned int this_comp = _hb_glyph_info_get_lig_comp (&buffer->cur());
if (this_comp == 0) if (this_comp == 0)
this_comp = 1; this_comp = last_num_components;
unsigned int new_lig_comp = components_so_far - last_num_components + unsigned int new_lig_comp = components_so_far - last_num_components +
MIN (this_comp, last_num_components); MIN (this_comp, last_num_components);
_hb_glyph_info_set_lig_props_for_mark (&buffer->cur(), lig_id, new_lig_comp); _hb_glyph_info_set_lig_props_for_mark (&buffer->cur(), lig_id, new_lig_comp);