Cosimo Lupo
de583f8bbc
Merge pull request #434 from anthrotype/appveyor-badge
...
README.md: add Appveyor's status badge
2015-12-11 18:06:59 +00:00
Cosimo Lupo
da31c3cdb9
README.md: add Appveyor's status badge
2015-12-11 18:03:22 +00:00
Cosimo Lupo
024b637482
Merge pull request #433 from anthrotype/appveyor
...
add Appveyor support
2015-12-11 17:56:09 +00:00
Cosimo Lupo
2af6ccb302
appveyor.yml: must add build: false
2015-12-11 17:34:05 +00:00
Cosimo Lupo
859dddff7c
Add support for running tests on Windows Python using Appveyor CI
2015-12-11 17:27:47 +00:00
Cosimo Lupo
499c36fc87
run-test.sh: exit immediately if any subcommands return non-zero value
2015-12-11 16:10:51 +00:00
Behdad Esfahbod
a9a5bd6d28
[mtiLib] Make backward lookup and feature name references work
2015-12-11 16:38:33 +01:00
Behdad Esfahbod
3d289927a4
[mtiLib] Remove unused function
2015-12-11 16:38:25 +01:00
Behdad Esfahbod
e9738c655e
[mtiLib] Allow intermixing of lookups and feature / script tables
2015-12-11 16:38:21 +01:00
Behdad Esfahbod
942cdd8477
[mtiLib] Towards recognizing symbolic references
2015-12-11 16:38:18 +01:00
Sascha Brawer
dcae8fd8ba
[feaLib] Represent mark class names as nodes in the syntax tree
...
Again, this will be needed for eventually distinguishing `glyph`
from `[glyph]` or `@CLASS`, which makes a semantic difference
when building GPOS type 2 tables.
2015-12-11 16:30:20 +01:00
Sascha Brawer
e99eb7948b
[feaLib] Distinguish between glyphs and glyph classes in parse tree
...
This will be needed for implementing class-based kerning. According
to the OpenType Feature File specification, a different table needs to
be built for `glyph` versus `[glyph]`.
2015-12-11 15:16:22 +01:00
Sascha Brawer
3a41bf7024
[feaLib] Make ValueRecord an Expression, not a Statement
2015-12-11 14:39:59 +01:00
Sascha Brawer
ac86de36fb
[feaLib] Implement the lookupflag
statement
2015-12-10 19:17:11 +01:00
Sascha Brawer
dfd210faef
[feaLib] Parse lookupflag
also when MarkAttachmentType comes last
...
Before this fix, the parser failed to process statements of the form
`lookupflag MarkAttachmentType @GLYPHCLASS;` when no other flag
were set after the glyph class. However, statements like
`lookupflag MarkAttachmentType @GLYPHCLASS RightToLeft;` were
getting recognized perfectly fine.
2015-12-10 16:00:54 +01:00
Behdad Esfahbod
74ebf424c6
[mtiLib] Fix file permission
2015-12-10 15:44:51 +01:00
Sascha Brawer
0dbb2fdcc0
[feaLib] Parse lookupflag
statements
...
They do not have any impact yet, this change is just for the parsing.
2015-12-10 13:06:28 +01:00
Behdad Esfahbod
ef03a3be47
Merge fd2ft, rename it to mtiLib
...
Implements Monotype Imaging's OpenType_Table_Source format as
specified at:
http://monotype.github.io/OpenType_Table_Source/otl_source.html
2015-12-10 12:57:37 +01:00
Behdad Esfahbod
72be745587
Err if space is found in glyph name
2015-12-10 12:54:21 +01:00
Sascha Brawer
e0a3350406
[feaLib] Implement GPOS type 8: Chaining contextual positioning
2015-12-09 23:53:20 +01:00
Sascha Brawer
cb0adb98b9
[feaLib] Parse GPOS type 8: Chaining contextual positioning
...
No output is generated yet, this change is just on the parser.
The OpenType Feature File specification is surprisingly vague about
the exact syntax of chaining contextual positioning rules, so I expect
that we will have to iterate on this parser. However, the test case
in parser_test.py gets recognized by `makeotf`, so the current
implementation is unlikely to be completely wrong.
2015-12-09 23:04:36 +01:00
Cosimo Lupo
4ae2604dca
Merge pull request #397 from rsheeter/master
...
Experimental support for Google-style color bitmap fonts
2015-12-09 21:38:28 +00:00
Rod Sheeter
9927a91653
Remove change to _dict_subset (meant to be local/test only). Add a cmap fmt 0 to color font test file.
2015-12-09 13:32:35 -08:00
Sascha Brawer
a364f60d1d
[feaLib] Change semantics of markClass
to also define a glyphclass
...
While not really documented in the OpenType Feature File specification,
the AFDKO makeotf tool handles the `markClass` statement this way.
Also, some examples in the specification seem to imply this semantics.
2015-12-09 22:15:52 +01:00
Rod Sheeter
905eb831b9
Add Google-style color font test and make _dict_subset more forgiving.
2015-12-09 13:05:16 -08:00
Behdad Esfahbod
0934cee03f
Reduce use of reduce(), makes python3 happy
2015-12-09 20:07:45 +01:00
Behdad Esfahbod
52b000d01e
Rewrite tokenization to use a single object
...
Allows for adding meaningful error messages.
2015-12-09 20:06:10 +01:00
Cosimo Lupo
812609e90c
[subset] fix logic of EBLC subsetting; avoid KeyError in EBDT subsetting
2015-12-09 09:42:15 -08:00
Rod Sheeter
9189d1a1f0
Experimental support for Google-style color bitmap fonts
2015-12-09 09:42:15 -08:00
Behdad Esfahbod
735370b356
Remove one use of pack()
2015-12-09 18:11:54 +01:00
Sascha Brawer
c2c033d3cf
[feaLib] Implement GPOS type 6: Mark-to-mark attachment positioning
2015-12-09 17:56:47 +01:00
Behdad Esfahbod
e25b2f0b1c
Rename parseGlyph[s] to makeGlyph[s]
2015-12-09 17:51:06 +01:00
Behdad Esfahbod
55f0822221
Allow parsing GSUB/GPOS without script / feature lists
2015-12-09 17:48:30 +01:00
Sascha Brawer
2af0adde6c
[feaLib] Parse Mark-to-mark attachment positioning statements
...
No output is produced yet; this will come in an upcoming change.
2015-12-09 17:14:13 +01:00
Behdad Esfahbod
8d96a3b998
Implement GDEF
2015-12-09 17:03:12 +01:00
Sascha Brawer
96223b8aee
[feaLib] Implement GPOS type 5: Mark-to-ligature attachment positioning
2015-12-09 16:51:15 +01:00
Cosimo Lupo
91aaaad8bd
Merge pull request #431 from anthrotype/travis-container
...
use faster, container-based Travis infrastructure
2015-12-09 13:06:21 +00:00
Behdad Esfahbod
79cdb5aa19
Implement kernset
2015-12-09 14:00:09 +01:00
Cosimo Lupo
4c49cc6b6e
requirements.txt: change commit hash to point to latest google/brotli HEAD
...
this is in order to compile brotli with old gcc without `-std=c++0x` flag
2015-12-09 12:59:47 +00:00
Sascha Brawer
d622f99982
[feaLib] Clean up class names of Abstract Syntax Tree statements
...
The class names of tree nodes for substitution and positioning rules
are now consistent with `builder.py`, which in turn is consistent with
`otTables.py`.
2015-12-09 13:58:05 +01:00
Cosimo Lupo
59ddee620e
.travis.yml: switch container-based infrastructure; don't install gcc++ 4.8 as it requires sudo
2015-12-09 12:57:25 +00:00
Behdad Esfahbod
7bf04190c9
Implement MarkToLigature positioning
2015-12-09 13:44:20 +01:00
Sascha Brawer
5b1b1d17f6
[feaLib] Restructure MarkBasePosBuilder in preparation of MarkLigPosBuilder
...
The upcoming MarkLigPosBuilder will have some parts in common with
MarkBasePosBuilder. Move these common parts into a helper method,
so that MarkLigPosBuilder will be able to call them.
Also, clean up the structure of MarkBasePosBuilder.
2015-12-09 13:23:50 +01:00
Sascha Brawer
7e846691e4
[feaLib] Consistently name LookupBuilders after their OpenType subtable class
2015-12-09 12:59:20 +01:00
Sascha Brawer
652bbeb51b
[feaLib] Centralize how lookups are built from subtables
2015-12-09 12:51:01 +01:00
Sascha Brawer
320a4a57c6
[feaLib] Centralize the building of coverage tables
2015-12-09 12:30:57 +01:00
Behdad Esfahbod
32b97ccab2
Implement MarkBasePos and MarkMarkPos
2015-12-09 12:21:17 +01:00
Behdad Esfahbod
6d8ee2a4f3
Add makeClassDef()
2015-12-09 11:50:53 +01:00
Behdad Esfahbod
e82695c4a7
Fix makeCoverage()
2015-12-09 11:48:56 +01:00
Sascha Brawer
0532ec85d3
[feaLib] Parse GPOS type 5: Mark-to-Ligature Attachment Positioning
...
No output is produced yet, this is just the change on the parser.
2015-12-09 10:40:49 +01:00