[aat] Fix Ligature matching

I hope... Makes "ffi" work with Zapfino. I'm not sure if doing it correctly though...
This commit is contained in:
Behdad Esfahbod 2018-01-19 18:36:39 -08:00
parent bef509855c
commit 51ce3828e6

View File

@ -362,7 +362,7 @@ struct LigatureSubtable
if (unlikely (!match_length))
return false;
buffer->move_to (match_positions[match_length - 1]);
buffer->move_to (match_positions[--match_length]);
const HBUINT32 &actionData = ligAction[action_idx];
if (unlikely (!actionData.sanitize (&c->sanitizer))) return false;
@ -384,6 +384,7 @@ struct LigatureSubtable
if (unlikely (!ligatureData.sanitize (&c->sanitizer))) return false;
hb_codepoint_t lig = ligatureData;
match_positions[match_length++] = buffer->out_len;
buffer->replace_glyph (lig);
//ligature_idx = 0; // XXX Yes or no?
@ -395,7 +396,6 @@ struct LigatureSubtable
}
/* TODO merge_clusters / unsafe_to_break */
match_length--;
action_idx++;
}
while (!(action & LigActionLast));