Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Foundation Concepts - when a lookup ends #14

Open
bobh0303 opened this issue Mar 20, 2015 · 1 comment
Open

Foundation Concepts - when a lookup ends #14

bobh0303 opened this issue Mar 20, 2015 · 1 comment

Comments

@bobh0303
Copy link

The Foundation Concepts page says, for substitution lookups :

If a rule replaces the current glyph, the following rules are skipped for the current glyph.

and for positioning lookups:

The process is the same for positioning features, except that instead of rule evaluation stopping when a glyph is replaced, the evaluation is stopped when a glyph’s position is changed.

These statements are slightly misleading (though perhaps intentionally so for simplicity?).

When processing a lookup, the lookup ends (i.e. any subsequent rules are skipped) when a rule matches the glyph sequence at the current point of processing -- whether or not any substitutions or positioning takes place.

The OT spec says for substitution:

A lookup is finished for a glyph after the client locates the target glyph or glyph context and performs a substitution, if specified.

and similarly for positioning:

A lookup is finished for a glyph after the client locates the target glyph or glyph context and performs a positioning, if specified.

(italics mine)

Thus in both cases, there may not be any actual action done, but when the client locates the target glyph or glyph context, any subsequent rules are skipped.

@typesupply
Copy link
Owner

When processing a lookup, the lookup ends (i.e. any subsequent rules are skipped) when a rule matches the glyph sequence at the current point of processing -- whether or not any substitutions or positioning takes place.

Right. I didn't want to get into matches that don't result in a change at this point in this book. The ignore keyword uses this trick to generate a sub/pos subtable that will not change anything. I thought about explaining how this works in the ignore section but I couldn't come up with a way to do it that didn't get too deep for the audience this info is intended for. I'll think about it a bit more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants