### MORX-13: Rearrangement with DontAdvance and MarkLast

The font for this test case has an AAT Extended Glyph Metamorphosis Table with a single Rearrangement Subtable. Its finite-state machine contains two states (0 and 1) with the following transitions:

- 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.

Expected |
Observed |
Conformance |