Sascha Brawer
faeba0c0c0
[feaLib] Support lookups with mixed glyph/class-based kerning
...
Resolves https://github.com/behdad/fonttools/issues/456
2016-02-02 18:24:48 +01:00
Sascha Brawer
c64019b3c6
[otlLib] Move building of class-based PairPos sutables from feaLib to otlLib
2016-02-02 15:17:01 +01:00
Sascha Brawer
f9e859c213
[otlLib] Move helper for building ClassDef tables from feaLib to otlLib
2016-02-02 10:48:47 +01:00
Sascha Brawer
0f609592bb
[otlLib] Build multiple glyph-based PairPos subtables when needed
...
Before this change, feaLib would group glyph-based pair positionings
by value formats. After this change, this logic happens in otlLib.
But clients can still do their own grouping if they wish, by calling
the buildPairPosGlyphsSubtable() method directly.
2016-02-02 10:30:33 +01:00
Sascha Brawer
5095aa9ecf
[otlLib] Move building of glyph-based PairPos subtables from feaLib to otlLib
2016-02-02 09:35:31 +01:00
Sascha Brawer
b2e663a1fc
[feaLib] Compile lookups after assigning lookup indices
...
Before this change, feaLib had assigned a lookup index at the same
time as compiling each lookup. For chains, the implicit assumption was
that the chain's targets would always come before the contexual chain.
Normally this was indeed the case, but feaLib (and also makeotf)
sometimes merge several chain targets into one single lookup,
and then this assumption was not true anymore.
In the new version, the lookups get compiled in a separate pass,
after assigning lookup indices.
https://github.com/behdad/fonttools/issues/463
2016-01-26 12:09:52 +01:00
Sascha Brawer
f5af1cf682
[feaLib] Minor: Remove obsolete import statement
2016-01-25 19:46:02 +01:00
Sascha Brawer
c09e8862c0
[feaLib] Handle contextual chained SinglePos rules
...
Resolves https://github.com/behdad/fonttools/issues/485 .
2016-01-25 16:27:18 +01:00
Sascha Brawer
a7c0b5c78f
[feaLib] Implement chained contextual single positioning
...
https://github.com/behdad/fonttools/issues/485
2016-01-25 15:10:40 +01:00
Sascha Brawer
312136356a
[feaLib] Raise FeatureLibError for not-yet-implemented construct
2016-01-25 12:26:23 +01:00
Sascha Brawer
82a444d659
[feaLib] Parse glyph patterns with multiple values
...
For example, we now recognize `pos one' 1 two' 2 three' 3;`
as a SinglePos statement, like makeotf does.
https://github.com/behdad/fonttools/issues/485
2016-01-25 12:18:17 +01:00
Behdad Esfahbod
58b49a1a42
[otlLib] change buildDevice API to take dict
...
Makes more sense. feaLib can be simplified by storing a dict
as well, but for now just cast.
2016-01-22 19:45:56 +01:00
Behdad Esfahbod
4e13a2268e
[otlLib] One more rename
2016-01-22 19:38:20 +01:00
Behdad Esfahbod
aea0ce9ae1
[otlLib] Adapt names to newly agreed scheme
2016-01-22 19:32:45 +01:00
Sascha Brawer
af48e43371
[otlLib] Move building of MarkLigPos from feaLib to otlLib
2016-01-22 14:50:17 +01:00
Sascha Brawer
036e2ce497
[otlLib] Move building of LigatureArrays from feaLib to otlLib
...
Not sure if empty ComponentRecords can be optimized away.
For the time being, leaving the output unchanged so that
the refactoring has no effect on the generated files.
2016-01-22 14:14:47 +01:00
Sascha Brawer
1978194caf
[otlLib] Move building of LigatureAttach tables from feaLib to otlLib
2016-01-22 12:45:29 +01:00
Sascha Brawer
cf7c670e80
[otlLib] Move building of MarkBasePos from feaLib to otlLib
2016-01-22 11:53:34 +01:00
Sascha Brawer
50cbd5ca78
[otlLib] Move building of BaseArrays from feaLib to otlLib
2016-01-22 10:57:03 +01:00
Sascha Brawer
de24f4f0d4
[otlLib] Move building of BaseRecords from feaLib to otlLib
2016-01-21 17:23:36 +01:00
Sascha Brawer
08fa0f14dd
[otlLib] Move building of MarkArrays from feaLib to otlLib
2016-01-21 16:23:55 +01:00
Sascha Brawer
f42d312580
[otlLib] Move building of ComponentRecords from feaLib to otlLib
2016-01-21 15:16:55 +01:00
Sascha Brawer
15ca8bb0a0
[otlLib] Move building of Mark2Records from feaLib to otlLib
2016-01-21 13:08:16 +01:00
Sascha Brawer
b07d168c0e
[feaLib] Simplify how MarkArrays are built
2016-01-21 11:39:34 +01:00
Sascha Brawer
3c65e82307
[otlLib] Move building of otTables.Lookup from feaLib to otlLib
2016-01-20 19:25:41 +01:00
Sascha Brawer
51ec0bf5cc
[otlLib] Move building of MarkGlyphSetsDef table from feaLib to otlLib
2016-01-20 11:28:33 +01:00
Sascha Brawer
3eacada029
[otlLib] Move building of LigCaretLists from feaLib to otlLib
2016-01-20 09:49:09 +01:00
Sascha Brawer
939b03fbea
[otlLib] Move building of LigGlyphs from feaLib to otlLib
2016-01-20 09:16:31 +01:00
Sascha Brawer
bfff7b4e86
[otlLib] Move building of CaretValues from feaLib to otlLib
2016-01-20 08:23:42 +01:00
Sascha Brawer
1bb757ee3c
[otlLib] Return None for empty argument to buildAttachList()
...
This simplifies call sites when building GDEF tables.
Also, publicly expose the buildAttachPoint() function.
https://github.com/behdad/fonttools/issues/468#issuecomment-173006650
2016-01-19 23:25:47 +01:00
Sascha Brawer
d1fd788af9
[otlLib] Build AttachLists in otlLib instead of feaLib
2016-01-19 22:38:23 +01:00
Sascha Brawer
d39f22668e
[feaLib] Emit ValueRecords even if their ValueFormat is zero
...
https://github.com/behdad/fonttools/issues/471
2016-01-19 17:07:08 +01:00
Sascha Brawer
32a6754fd7
[feaLib] Use otlLib for generating SinglePos tables
...
See https://github.com/behdad/fonttools/issues/471 for the change
to ValueRecords whose ValueFormat is zero; this may indicate a problem
in otlLib that needs to be fixed.
Resolves https://github.com/behdad/fonttools/issues/472 .
2016-01-19 16:27:45 +01:00
Sascha Brawer
049fd4bd8f
[otlLib] Move CursivePos building from feaLib to otlLib
2016-01-14 17:54:47 +01:00
Sascha Brawer
3968aaa71b
[feaLib] Make invocation of otlLib less verbose
2016-01-14 17:15:52 +01:00
Sascha Brawer
9612ef1a22
[otlLib] Move buildCoverage from feaLib to otlLib
2016-01-14 17:10:45 +01:00
Sascha Brawer
0f8882bcc3
[otlLib] Move creation of ValueRecords from feaLib to otlLib
2016-01-14 16:27:04 +01:00
Sascha Brawer
18297eb591
[otlLib] Move buildAnchor from feaLib to otlLib
2016-01-14 13:08:26 +01:00
Sascha Brawer
d2f9fa8a39
[feaLib] Simplify how ClassDef tables are built
...
In f0eb7e98ca0642f17ac82433db8c957fffd6a9d3, the various subclasses
of otTables.ClassDef were merged into one single class. Therefore,
we can now always instantiate otTables.ClassDef() which is simpler.
2016-01-14 11:56:57 +01:00
Sascha Brawer
bf29ec9555
[otlLib] Move the building of Device tables from feaLib to otlLib
2016-01-14 11:48:17 +01:00
Sascha Brawer
78092ba783
[feaLib] Do not set otTables.AlternateSubst.Format
2016-01-14 11:30:46 +01:00
Sascha Brawer
e60b939088
[feaLib] Simplify how coverage tables are built
...
In f0eb7e98ca0642f17ac82433db8c957fffd6a9d3, the various subclasses
of otTables.Coverage were merged into one single class. Therefore,
we can now always instantiate otTables.Coverage() which is simpler.
2016-01-14 11:17:56 +01:00
Sascha Brawer
1bffd6b872
[feaLib] Do not set LigatureSubst.Format
2016-01-14 11:06:11 +01:00
Sascha Brawer
6246c71a07
[feaLib] Port to otlLib builder for supported lookups
...
Make the output of otlLib.buildLigatureSubst() deterministic.
Before this change, otlLib ligatures were emitted in a non-deterministic
sorting order (depending on what hash value Python would give
to a string tuple).
2016-01-14 10:27:54 +01:00
Behdad Esfahbod
c3cb356e7f
[feaLib] Fix for f0eb7e98ca0642f17ac82433db8c957fffd6a9d3
...
ClassDef1 and ClassDef2 are now same type, so can't differentiate
based on that anymore.
2016-01-13 17:29:42 +00:00
Sascha Brawer
f2806c4de2
[feaLib] For testing, use dates without leading zeroes
...
On Windows, some Python versions format "Jan 01" while others
format "Jan 1"; this caused test failures on the build farm.
By using a date without leading zeros (2011-12-13), we can
work around this.
https://github.com/behdad/fonttools/issues/455
2016-01-11 19:36:19 +01:00
Sascha Brawer
67686691c4
[feaLib] Also handle feature aalt
without any custom lookups
...
Before this change, feaLib did not handle feature files that specified
`feature aalt` whose block just was referring to other features without
defining any lookups on its own. After this change, we can handle it.
Resolves https://github.com/behdad/fonttools/issues/441
2016-01-11 18:12:23 +01:00
Sascha Brawer
38f4ee7908
[feaLib] Implement table head with FontRevision statement
2016-01-11 18:01:47 +01:00
Sascha Brawer
2de6fc7744
[feaLib] Imlement special support for feature aalt
2016-01-11 16:00:52 +01:00
Sascha Brawer
5696b50fac
[feaLib] Implement the GlyphClassDef statement
2016-01-08 19:06:52 +01:00