1*e1fe3e4aSElliott Hugheslanguagesystem DFLT dflt; 2*e1fe3e4aSElliott Hughes 3*e1fe3e4aSElliott Hughes@TOP_MARKS = [acute grave macron]; 4*e1fe3e4aSElliott HughesmarkClass [cedilla ogonek] <anchor 350 -20> @BOTTOM_MARKS; 5*e1fe3e4aSElliott Hughes@FRENCH_MARKS = [acute grave cedilla dieresis circumflex]; 6*e1fe3e4aSElliott Hughes@MARKS_WITH_DUPLICATES = [breve caron umlaut breve caron umlaut]; 7*e1fe3e4aSElliott Hughes 8*e1fe3e4aSElliott Hugheslookup A { 9*e1fe3e4aSElliott Hughes lookupflag RightToLeft; 10*e1fe3e4aSElliott Hughes pos one 1; 11*e1fe3e4aSElliott Hughes} A; 12*e1fe3e4aSElliott Hughes 13*e1fe3e4aSElliott Hugheslookup B { 14*e1fe3e4aSElliott Hughes lookupflag IgnoreBaseGlyphs; 15*e1fe3e4aSElliott Hughes pos two 2; 16*e1fe3e4aSElliott Hughes} B; 17*e1fe3e4aSElliott Hughes 18*e1fe3e4aSElliott Hugheslookup C { 19*e1fe3e4aSElliott Hughes lookupflag IgnoreLigatures; 20*e1fe3e4aSElliott Hughes pos four 4; 21*e1fe3e4aSElliott Hughes} C; 22*e1fe3e4aSElliott Hughes 23*e1fe3e4aSElliott Hugheslookup D { 24*e1fe3e4aSElliott Hughes#test-fea2fea: lookupflag RightToLeft IgnoreBaseGlyphs IgnoreLigatures; 25*e1fe3e4aSElliott Hughes lookupflag 7; 26*e1fe3e4aSElliott Hughes pos seven 7; 27*e1fe3e4aSElliott Hughes} D; 28*e1fe3e4aSElliott Hughes 29*e1fe3e4aSElliott Hugheslookup E { 30*e1fe3e4aSElliott Hughes lookupflag IgnoreMarks; 31*e1fe3e4aSElliott Hughes pos eight 8; 32*e1fe3e4aSElliott Hughes} E; 33*e1fe3e4aSElliott Hughes 34*e1fe3e4aSElliott Hugheslookup F { 35*e1fe3e4aSElliott Hughes lookupflag MarkAttachmentType @TOP_MARKS; 36*e1fe3e4aSElliott Hughes pos F 1; 37*e1fe3e4aSElliott Hughes} F; 38*e1fe3e4aSElliott Hughes 39*e1fe3e4aSElliott Hugheslookup G { 40*e1fe3e4aSElliott Hughes lookupflag MarkAttachmentType @BOTTOM_MARKS; 41*e1fe3e4aSElliott Hughes pos G 1; 42*e1fe3e4aSElliott Hughes} G; 43*e1fe3e4aSElliott Hughes 44*e1fe3e4aSElliott Hugheslookup H { 45*e1fe3e4aSElliott Hughes lookupflag IgnoreLigatures MarkAttachmentType @TOP_MARKS; 46*e1fe3e4aSElliott Hughes pos H 1; 47*e1fe3e4aSElliott Hughes} H; 48*e1fe3e4aSElliott Hughes 49*e1fe3e4aSElliott Hugheslookup I { 50*e1fe3e4aSElliott Hughes lookupflag UseMarkFilteringSet @TOP_MARKS; 51*e1fe3e4aSElliott Hughes pos I 1; 52*e1fe3e4aSElliott Hughes} I; 53*e1fe3e4aSElliott Hughes 54*e1fe3e4aSElliott Hugheslookup J { 55*e1fe3e4aSElliott Hughes # @FRENCH_MARKS overlaps with @TOP_MARKS. 56*e1fe3e4aSElliott Hughes # Other than with MarkAttachmentType, the same glyph may appear 57*e1fe3e4aSElliott Hughes # in multiple glyphsets for UseMarkFilteringSet. Make sure that 58*e1fe3e4aSElliott Hughes # our implementation can handle this. 59*e1fe3e4aSElliott Hughes lookupflag UseMarkFilteringSet @FRENCH_MARKS; 60*e1fe3e4aSElliott Hughes pos J 1; 61*e1fe3e4aSElliott Hughes} J; 62*e1fe3e4aSElliott Hughes 63*e1fe3e4aSElliott Hugheslookup K { 64*e1fe3e4aSElliott Hughes lookupflag IgnoreLigatures UseMarkFilteringSet @TOP_MARKS; 65*e1fe3e4aSElliott Hughes pos K 1; 66*e1fe3e4aSElliott Hughes} K; 67*e1fe3e4aSElliott Hughes 68*e1fe3e4aSElliott Hugheslookup L { 69*e1fe3e4aSElliott Hughes pos L 1; 70*e1fe3e4aSElliott Hughes} L; 71*e1fe3e4aSElliott Hughes 72*e1fe3e4aSElliott Hugheslookup M { 73*e1fe3e4aSElliott Hughes lookupflag UseMarkFilteringSet @MARKS_WITH_DUPLICATES; 74*e1fe3e4aSElliott Hughes pos M 1; 75*e1fe3e4aSElliott Hughes} M; 76*e1fe3e4aSElliott Hughes 77*e1fe3e4aSElliott Hugheslookup N { 78*e1fe3e4aSElliott Hughes lookupflag MarkAttachmentType @MARKS_WITH_DUPLICATES; 79*e1fe3e4aSElliott Hughes pos N 1; 80*e1fe3e4aSElliott Hughes} N; 81*e1fe3e4aSElliott Hughes 82*e1fe3e4aSElliott Hughesfeature test { 83*e1fe3e4aSElliott Hughes lookup A; 84*e1fe3e4aSElliott Hughes lookup B; 85*e1fe3e4aSElliott Hughes lookup C; 86*e1fe3e4aSElliott Hughes lookup D; 87*e1fe3e4aSElliott Hughes lookup E; 88*e1fe3e4aSElliott Hughes lookup F; 89*e1fe3e4aSElliott Hughes lookup G; 90*e1fe3e4aSElliott Hughes lookup H; 91*e1fe3e4aSElliott Hughes lookup I; 92*e1fe3e4aSElliott Hughes lookup J; 93*e1fe3e4aSElliott Hughes lookup K; 94*e1fe3e4aSElliott Hughes lookup L; 95*e1fe3e4aSElliott Hughes lookup M; 96*e1fe3e4aSElliott Hughes lookup N; 97*e1fe3e4aSElliott Hughes} test; 98*e1fe3e4aSElliott Hughes 99*e1fe3e4aSElliott Hughesfeature test { 100*e1fe3e4aSElliott Hughes lookupflag IgnoreMarks; 101*e1fe3e4aSElliott Hughes lookup O { 102*e1fe3e4aSElliott Hughes pos one 1; 103*e1fe3e4aSElliott Hughes } O; 104*e1fe3e4aSElliott Hughes lookup P { 105*e1fe3e4aSElliott Hughes pos one 1; 106*e1fe3e4aSElliott Hughes } P; 107*e1fe3e4aSElliott Hughes} test; 108*e1fe3e4aSElliott Hughes 109*e1fe3e4aSElliott Hughesfeature test { 110*e1fe3e4aSElliott Hughes lookup Q { 111*e1fe3e4aSElliott Hughes pos one 1; 112*e1fe3e4aSElliott Hughes } Q; 113*e1fe3e4aSElliott Hughes lookup R { 114*e1fe3e4aSElliott Hughes pos one 1; 115*e1fe3e4aSElliott Hughes } R; 116*e1fe3e4aSElliott Hughes} test; 117*e1fe3e4aSElliott Hughes 118*e1fe3e4aSElliott Hughesfeature test { 119*e1fe3e4aSElliott Hughes lookup S { 120*e1fe3e4aSElliott Hughes lookupflag IgnoreMarks; 121*e1fe3e4aSElliott Hughes pos one 1; 122*e1fe3e4aSElliott Hughes } S; 123*e1fe3e4aSElliott Hughes lookup T { 124*e1fe3e4aSElliott Hughes pos one 1; 125*e1fe3e4aSElliott Hughes } T; 126*e1fe3e4aSElliott Hughes} test; 127*e1fe3e4aSElliott Hughes 128*e1fe3e4aSElliott Hughesfeature test { 129*e1fe3e4aSElliott Hughes lookup U { 130*e1fe3e4aSElliott Hughes pos one 1; 131*e1fe3e4aSElliott Hughes } U; 132*e1fe3e4aSElliott Hughes lookup V { 133*e1fe3e4aSElliott Hughes lookupflag IgnoreMarks; 134*e1fe3e4aSElliott Hughes pos one 1; 135*e1fe3e4aSElliott Hughes } V; 136*e1fe3e4aSElliott Hughes} test; 137*e1fe3e4aSElliott Hughes 138*e1fe3e4aSElliott Hughesfeature test { 139*e1fe3e4aSElliott Hughes lookup W { 140*e1fe3e4aSElliott Hughes lookupflag IgnoreMarks; 141*e1fe3e4aSElliott Hughes script latn; 142*e1fe3e4aSElliott Hughes pos one 1; 143*e1fe3e4aSElliott Hughes } W; 144*e1fe3e4aSElliott Hughes lookup X { 145*e1fe3e4aSElliott Hughes lookupflag IgnoreMarks; 146*e1fe3e4aSElliott Hughes script latn; 147*e1fe3e4aSElliott Hughes pos two 2; 148*e1fe3e4aSElliott Hughes } X; 149*e1fe3e4aSElliott Hughes} test; 150*e1fe3e4aSElliott Hughes 151*e1fe3e4aSElliott Hugheslookup Y { 152*e1fe3e4aSElliott Hughes lookupflag UseMarkFilteringSet [acute grave macron]; 153*e1fe3e4aSElliott Hughes pos Y 1; 154*e1fe3e4aSElliott Hughes} Y; 155*e1fe3e4aSElliott Hughes 156*e1fe3e4aSElliott Hugheslookup Z { 157*e1fe3e4aSElliott Hughes lookupflag MarkAttachmentType [acute grave macron]; 158*e1fe3e4aSElliott Hughes pos Z 1; 159*e1fe3e4aSElliott Hughes} Z; 160