MORX-22: Contextual Glyph Substitution with MarkIndex and CurrentIndex
The
font for this test case has
an
AAT Extended Glyph Metamorphosis Table
with a single
Contextual Glyph Substitution Subtable. Its finite-state machine
contains two states (0 and 1) with the following transitions:
- For glyph A:
- In state 0, the machine moves to state 1 using a transition
that carries both the SetMark and DontAdvance flags.
- In state 1, the machine moves back to state 0 using a transition
that executes glyph substitution #0 on the marked glyph, and
also glyph substitution #1 on the current glyph.
The input string for this test is A. If your rendering
system implements Apple Advanced Typography,
both MarkIndex and CurrentIndex will affect the
same glyph. If your implementation is correct, it should
first execute the glyph substitution for MarkIndex
to replace A by B. Then, it should
execute the glyph substitution for CurrentIndex,
which replaces B (the result of the previous substitution)
by C. Therefore, the final result should be C.