[AAT] In InsertionChain, set mark to previous-position if inserting

Fixes MORX-31
This commit is contained in:
Behdad Esfahbod 2019-01-23 20:53:57 +01:00
parent cbe0ed117a
commit 36fb2b4da9
1 changed files with 5 additions and 3 deletions

View File

@ -729,6 +729,8 @@ struct InsertionSubtable
hb_buffer_t *buffer = driver->buffer;
unsigned int flags = entry->flags;
unsigned mark_loc = buffer->out_len;
if (entry->data.markedInsertIndex != 0xFFFF)
{
unsigned int count = (flags & MarkedInsertCount);
@ -754,6 +756,9 @@ struct InsertionSubtable
buffer->unsafe_to_break_from_outbuffer (mark, MIN (buffer->idx + 1, buffer->len));
}
if (flags & SetMark)
mark = mark_loc;
if (entry->data.currentInsertIndex != 0xFFFF)
{
unsigned int count = (flags & CurrentInsertCount) >> 5;
@ -791,9 +796,6 @@ struct InsertionSubtable
buffer->move_to ((flags & DontAdvance) ? end : end + count);
}
if (flags & SetMark)
mark = buffer->out_len;
return true;
}