1languagesystem DFLT dflt; 2 3@TOP_MARKS = [acute grave macron]; 4markClass [cedilla ogonek] <anchor 350 -20> @BOTTOM_MARKS; 5@FRENCH_MARKS = [acute grave cedilla dieresis circumflex]; 6@MARKS_WITH_DUPLICATES = [breve caron umlaut breve caron umlaut]; 7 8lookup A { 9 lookupflag RightToLeft; 10 pos one 1; 11} A; 12 13lookup B { 14 lookupflag IgnoreBaseGlyphs; 15 pos two 2; 16} B; 17 18lookup C { 19 lookupflag IgnoreLigatures; 20 pos four 4; 21} C; 22 23lookup D { 24#test-fea2fea: lookupflag RightToLeft IgnoreBaseGlyphs IgnoreLigatures; 25 lookupflag 7; 26 pos seven 7; 27} D; 28 29lookup E { 30 lookupflag IgnoreMarks; 31 pos eight 8; 32} E; 33 34lookup F { 35 lookupflag MarkAttachmentType @TOP_MARKS; 36 pos F 1; 37} F; 38 39lookup G { 40 lookupflag MarkAttachmentType @BOTTOM_MARKS; 41 pos G 1; 42} G; 43 44lookup H { 45 lookupflag IgnoreLigatures MarkAttachmentType @TOP_MARKS; 46 pos H 1; 47} H; 48 49lookup I { 50 lookupflag UseMarkFilteringSet @TOP_MARKS; 51 pos I 1; 52} I; 53 54lookup J { 55 # @FRENCH_MARKS overlaps with @TOP_MARKS. 56 # Other than with MarkAttachmentType, the same glyph may appear 57 # in multiple glyphsets for UseMarkFilteringSet. Make sure that 58 # our implementation can handle this. 59 lookupflag UseMarkFilteringSet @FRENCH_MARKS; 60 pos J 1; 61} J; 62 63lookup K { 64 lookupflag IgnoreLigatures UseMarkFilteringSet @TOP_MARKS; 65 pos K 1; 66} K; 67 68lookup L { 69 pos L 1; 70} L; 71 72lookup M { 73 lookupflag UseMarkFilteringSet @MARKS_WITH_DUPLICATES; 74 pos M 1; 75} M; 76 77lookup N { 78 lookupflag MarkAttachmentType @MARKS_WITH_DUPLICATES; 79 pos N 1; 80} N; 81 82feature test { 83 lookup A; 84 lookup B; 85 lookup C; 86 lookup D; 87 lookup E; 88 lookup F; 89 lookup G; 90 lookup H; 91 lookup I; 92 lookup J; 93 lookup K; 94 lookup L; 95 lookup M; 96 lookup N; 97} test; 98