Sascha Brawer
ac86de36fb
[feaLib] Implement the lookupflag
statement
2015-12-10 19:17:11 +01:00
Sascha Brawer
e0a3350406
[feaLib] Implement GPOS type 8: Chaining contextual positioning
2015-12-09 23:53:20 +01:00
Sascha Brawer
c2c033d3cf
[feaLib] Implement GPOS type 6: Mark-to-mark attachment positioning
2015-12-09 17:56:47 +01:00
Sascha Brawer
96223b8aee
[feaLib] Implement GPOS type 5: Mark-to-ligature attachment positioning
2015-12-09 16:51:15 +01:00
Sascha Brawer
0fbbe037bf
[feaLib] Implement GPOS type 4: Mark-to-Base Attachment Positioning
2015-12-08 22:28:02 +01:00
Sascha Brawer
790ea83a02
[feaLib] Parse GPOS type 4 aka Mark-to-Base Attachment Positioning
...
However, no output tables are being built yet. This change is just
implementing the feature file parser.
2015-12-08 19:04:42 +01:00
Sascha Brawer
bc4828589e
[feaLib] Merge test cases from the OpenType Feature File specification
...
The setup code for these unit tests was copied and pasted,
and this became a little repetitive.
2015-12-08 17:19:30 +01:00
Sascha Brawer
dfa1551ece
[feaLib] Implement markClass
statement
2015-12-08 17:04:21 +01:00
Cosimo Lupo
db57418b55
Merge pull request #420 from moyogo/fealib-typo
...
feaLib: misnamed function in builder_test.py
2015-12-08 09:48:40 +00:00
Sascha Brawer
c6ee46f299
[feaLib] Implement GPOS type 3: Cursive Attachment Positioning
2015-12-07 23:56:08 +01:00
Sascha Brawer
3433f363e7
[feaLib] Implement GPOS type 2, format 1
2015-12-07 21:26:58 +01:00
moyogo
38b335e131
feaLib: misnamed function in builder_test.py
2015-12-04 16:56:58 +00:00
Sascha Brawer
b99f1c9af4
[feaLib] Implement GPOS type 1, Single Adjustment Positioning
2015-12-04 12:22:01 +01:00
Sascha Brawer
f45fab8c3a
[feaLib] Sort GSUB glyph coverage tables by glyph ID
...
Before this change, feaLib would sort coverage tables by glyph name,
which is against the OpenType specification. The current unittests
happen to use only glyphs where the ordering is identical whether
sorting by name or by ID; but I am about to add unittests (for GPOS)
where the ordering is different.
The ordering cannot be enforced by otTables because otTables does
not have access to the font's glyph order; therefore, the sorting
needs to happen inside feaLib.
2015-12-04 11:11:17 +01:00
Sascha Brawer
cab0067c7e
[feaLib] Implement GSUB LookupType 8: Reverse chaining single substitutions
2015-12-03 13:05:42 +01:00
Sascha Brawer
152dff4361
[feaLib] Implement GSUB chain substitution rules
2015-11-30 15:02:09 +01:00
Sascha Brawer
3f5e2ae820
[feaLib] Add expected output for chain substitution rules
...
Generated by running example 1 from the Feature File specification
section 5.f.i (Specifying a Chain Sub rule and marking sub-runs)
through AFDKO's makeotf tool, and then decompiling the resulting
GSUB table with ttx.
The actual test is commented out because the current version of feaLib
is not able to produce this output yet; marked with a TODO comment.
2015-10-27 20:36:56 +01:00
Sascha Brawer
75e4053e39
[feaLib] Handle references to named lookup blocks
2015-09-28 16:49:17 +02:00
Sascha Brawer
17ab15c4af
[feaLib] Implement GSUB lookup type 2
2015-09-10 15:28:02 +02:00
Sascha Brawer
a35291e8c1
[feaLib] Implement required
qualifier on language
statements
2015-09-08 15:55:54 +02:00
Sascha Brawer
a3783e1095
[feaLib] Reject language
and script
within feature aalt
and size
2015-09-08 12:18:03 +02:00
Sascha Brawer
683a8f5dbc
[feaLib] Reject duplicate languagesystem declarations
2015-09-08 10:56:07 +02:00
Sascha Brawer
b0bbce88b1
[feaLib] Implement Single Substitution (GSUB lookup type 1)
2015-09-08 10:33:07 +02:00
Sascha Brawer
6140a4ec2b
[feaLib] Build ScriptList subtable
...
Also, fixed a bug that caused language tags to be sometimes stripped.
Added an assertion to verify that language tags are always 4 chars.
2015-09-07 21:34:10 +02:00
Sascha Brawer
2537a4da29
[feaLib] Enforce uniform lookup types inside named lookup blocks
2015-09-07 16:27:12 +02:00
Sascha Brawer
0963673d58
[feaLib] Rename a test case, for consistency with other test cases
2015-09-07 16:13:34 +02:00
Sascha Brawer
80de401c09
[feaLib] Implement ligature substitutions
2015-09-07 16:10:13 +02:00
Sascha Brawer
8e8a0d68c7
[feaLib] Prohibit script
and language
statements within named lookups
2015-09-07 13:33:44 +02:00
Sascha Brawer
5f2e55d5fc
[feaLib] Emit lookups for alternate substitutions
2015-09-07 11:39:09 +02:00
Sascha Brawer
102c0e0e56
[feaLib] Handle languagesystem
, script
and languaguage
statements
...
Currently, the compiler uses them to figure out which set of
languagesystems would apply for the current scope. However, this
information is not yet used for anything.
2015-09-07 11:39:09 +02:00
Sascha Brawer
4f27ce3585
[feaLib] Ensure that "languagesystem DFLT dflt;" comes first
...
According the to the OpenType Feature File specification,
"languagesystem DFLT dflt;" must be the first languagesystem
statement in a file.
2015-09-07 11:39:09 +02:00
Sascha Brawer
df740092d9
[feaLib] Basic test framework for building OpenType features
2015-09-07 11:39:09 +02:00