Skip to content

Honour useMarkFilteringSet lookup flag during glyph iteration - #373

Merged
blikblum merged 1 commit into
foliojs:masterfrom
lineto:fix/use-mark-filtering-set
Oct 23, 2026
Merged

blikblum merged 1 commit into
foliojs:masterfrom
lineto:fix/use-mark-filtering-set

Conversation

@lehni

@lehni lehni commented May 20, 2026 •

Copy link
Copy Markdown
Contributor

Marks outside a lookup's filtering set must be skipped during iteration per the OT spec — useMarkFilteringSet overrides both ignoreMarks and markAttachmentType for marks. Without honouring it, contextual rules either fail to fire or fire on the wrong context, and mark-to-mark positioning attaches to the wrong candidate.

The lookup's filtering set is resolved lazily into a Set<glyphId> (cached per Coverage), threaded through GlyphIterator.reset, and checked in shouldIgnore before the legacy mark-skipping flags.

Test note

The added Mada test exercises an rclt chain whose backtrack also depends on #372 (chain-context backtrack matching order). This branch is therefore stacked on #372 and includes its commit; please merge #372 first, after which only this PR's own commit remains.

@lehni
lehni force-pushed the fix/use-mark-filtering-set branch 3 times, most recently from f81284f to 15e1da3 Compare October 23, 2026 15:08
@blikblum

Copy link
Copy Markdown
Member

Please look at the conflict

- Skip marks not in the lookup's filtering set per OT spec
- Overrides ignoreMarks and markAttachmentType for marks
@lehni
lehni force-pushed the fix/use-mark-filtering-set branch from 15e1da3 to a1bf87f Compare October 23, 2026 20:57
@lehni

lehni commented Oct 23, 2026

Copy link
Copy Markdown
Contributor Author

@blikblum Rebased onto master. With #372 merged, this is down to its own commit.

@blikblum
blikblum merged commit 9babd8c into foliojs:master Oct 23, 2026
3 checks passed
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

Successfully merging this pull request may close these issues.

2 participants