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 99feature test { 100 lookupflag IgnoreMarks; 101 lookup O { 102 pos one 1; 103 } O; 104 lookup P { 105 pos one 1; 106 } P; 107} test; 108 109feature test { 110 lookup Q { 111 pos one 1; 112 } Q; 113 lookup R { 114 pos one 1; 115 } R; 116} test; 117 118feature test { 119 lookup S { 120 lookupflag IgnoreMarks; 121 pos one 1; 122 } S; 123 lookup T { 124 pos one 1; 125 } T; 126} test; 127 128feature test { 129 lookup U { 130 pos one 1; 131 } U; 132 lookup V { 133 lookupflag IgnoreMarks; 134 pos one 1; 135 } V; 136} test; 137 138feature test { 139 lookup W { 140 lookupflag IgnoreMarks; 141 script latn; 142 pos one 1; 143 } W; 144 lookup X { 145 lookupflag IgnoreMarks; 146 script latn; 147 pos two 2; 148 } X; 149} test; 150 151lookup Y { 152 lookupflag UseMarkFilteringSet [acute grave macron]; 153 pos Y 1; 154} Y; 155 156lookup Z { 157 lookupflag MarkAttachmentType [acute grave macron]; 158 pos Z 1; 159} Z; 160