MORX-13: Rearrangement with DontAdvance and MarkLast
- For glyph A, the machine stays in its current
state. As a side effect, it sets both start
and end of the marked glyph sequence to the
current glyph position.
- For glyphs B, C, and D, the machine stays
in its current state. As a side effect, it sets both start
and end of the marked glyph sequence to the
current glyph position.
- For glyph E,
- from state 0, the machine makes a transition to state 1.
This transition carries both the DontAdvance and
MarkLast flags. No rearrangement action is performed.
- from state 1, the machine stays in state 1. The transition
carries no flags. However, it peforms a rearrangement of type 1
which moves the first marked glyph to the end of the marked
glyph sequence.
- For any other glyphs and “end of text”, the machine performs
no action.
The input string for this test case is ABCDE. If your
rendering system correctly implements Apple Advanced
Typography, the finite-state machine should extend
the marked glyph range to include E when the state
changes from 0 to 1, even though the current position is not
advancing. As a result, the final string after rearrangement should
be BCDEA. If your implementation produces BCDAE
or another order, it fails to handle state transitions that carry
both the DontAdvance and MarkLast flags.