After this change, feaLib generates the exact same output as makeotf for the test case in `bug453.fea`. Before this change, feaLib had rejected the input as malformed. Our new behavior is in blatant violation of the OpenType Feature File Syntax specification, which writes: "NOTE! If a GDEF table is not explicitly defined in the feature file, [...] all mark glyph classes must be disjoint". However: 1. makeotf does not enforce this constraint; 2. existing feature files happily define non-disjoint markClasses; 3. existing tools such as the Glyphs font editor generate feature files with non-disjoint markClasses; 4. it is not obvious what the intention of this constraint would be. Therefore, fewLib now follows the makeotf implementation, intentionally ignoring what is mandated by the specification. I've proposed a spec change at https://github.com/adobe-type-tools/afdko/issues/106. Resolves https://github.com/behdad/fonttools/issues/453.
12 lines
370 B
Plaintext
12 lines
370 B
Plaintext
# https://github.com/behdad/fonttools/issues/453
|
|
feature mark {
|
|
lookup mark1 {
|
|
markClass [acute] <anchor 150 -10> @TOP_MARKS;
|
|
position base [e] <anchor 250 450> mark @TOP_MARKS;
|
|
} mark1;
|
|
lookup mark2 {
|
|
markClass [acute] <anchor 150 -20> @TOP_MARKS_2;
|
|
position base [e] <anchor 250 450> mark @TOP_MARKS_2;
|
|
} mark2;
|
|
} mark;
|