aboutsummaryrefslogtreecommitdiffstats
path: root/ukarpanghooth/ukarpanghooth.ufo/features.fea
blob: bd49a3eeed7bc191f1786abedd7af232da686ca4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
languagesystem DFLT dflt;
languagesystem latn dflt;

@full = [ \a - \z ];
@upper = [ \A - \Z ];
@hfhz = [ \a.hfhz - \z.hfhz ];
@hfvt = [ \a.hfvt - \z.hfvt ];
@qrtr = [ \a.qrtr - \z.qrtr ];
@all  = [ @full @hfhz @hfvt @qrtr space space.hfhz space.hfvt space.qrtr ];

# GSUB
lookup full2qrtr {
	sub [@full space] by [@qrtr space.qrtr];
} full2qrtr;
lookup full2hfvt {
	sub [@full space] by [@hfvt space.hfvt];
} full2hfvt;
lookup full2hfhz {
	sub [@full space] by [@hfhz space.hfhz];
} full2hfhz;
feature calt {
	# the script is unicameral, so map caps to lowercase to simplify substitutions
	lookup up2lo {
		sub @upper by @full;
	} up2lo;
	lookup blocksub {
		sub @full' lookup full2qrtr
		    @full' lookup full2qrtr
		    @full' lookup full2qrtr
		    [@full space]' lookup full2qrtr;
		sub @full' lookup full2qrtr
		    @full' lookup full2qrtr
		    [@full space]' lookup full2hfvt;
		sub @full' lookup full2hfvt
		    [@full space]' lookup full2hfvt;
	} blocksub;
} calt;

# GPOS
lookup qrtr1 {
	pos @qrtr <300 300 0 0>;
} qrtr1;
lookup qrtr2 {
	pos @qrtr <0 0 0 0>;
} qrtr2;
lookup qrtr3 {
	pos @qrtr <-600 0 -300 0>;
} qrtr3;
lookup qrtr4 {
	pos [@qrtr space.qrtr] <-600 300 -300 0>;
} qrtr4;
lookup hfvt1 {
	pos [@hfvt space.hfvt] <-600 0 -300 0>;
} hfvt1;
lookup hfvt2 {
	pos @hfvt <300 0 0 0>;
} hfvt2;
lookup hfvt3 {
	pos [@hfvt space.hfvt] <-300 0 0 0>;
} hfvt3;
feature kern {
	lookup blockpos {
		pos @qrtr' lookup qrtr1
		    @qrtr' lookup qrtr2
		    @qrtr' lookup qrtr3
		    [@qrtr space.qrtr]' lookup qrtr4;
		pos @qrtr' lookup qrtr1
		    @qrtr' lookup qrtr2
		    [@hfvt space.hfvt]' lookup hfvt1;
		pos @hfvt' lookup hfvt2
		    [@hfvt space.hfvt]' lookup hfvt3;
	} blockpos;
} kern;

#Mark attachment classes (defined in GDEF, used in lookupflags)

@GDEF_Simple = [
	\A -\Z \a - \z
	\a.hfvt - \z.hfvt
	\a.hfhz - \z.hfhz
	\a.qrtr - \z.qrtr
	\space \space.hfvt \space.hfhz \space.qrtr
];

table GDEF {
  GlyphClassDef @GDEF_Simple, , , ;

} GDEF;