775 Commits

Author SHA1 Message Date
Behdad Esfahbod
e93e29125f Don't write Format for Coverage, ClassDef, Single/Alternate/LigatureSubst
The format values for those are automatically handled in
postRead/preWrite to choose optimal format.  As such, don't write them
in XML.  Reduces noise.

Part of https://github.com/behdad/fonttools/issues/73
2013-12-17 03:06:10 -05:00
Behdad Esfahbod
6ed2eb4092 Write LookupType as a comment
We compute LookupType from the type of the subtables, so write it out
as an informative comment in XML as opposed to an element.
2013-12-17 02:57:29 -05:00
Behdad Esfahbod
5fec22bfcd Compute correct LookupType when compiling font
Also ensures that all subtables of a lookup have the same
lookup type.
2013-12-17 02:42:18 -05:00
Behdad Esfahbod
ea82d6dfd1 Handle NULL coverage table in ligature substitute
Just to be in line with Single and Alternate subst.
2013-12-17 01:58:26 -05:00
Behdad Esfahbod
dafdb2933a Further optimize table loading
Again, both faster and more memory efficient
2013-12-17 00:58:02 -05:00
Behdad Esfahbod
b4070bd629 Minor optimization of table loading
Is both faster and more memory efficient.
2013-12-17 00:44:33 -05:00
Behdad Esfahbod
0be386edb5 [subset] Fix subsetting of Khmer fonts
Read comment.
2013-12-16 20:52:52 -05:00
Khaled Hosny
522cd11d51 Remove unnecessary new line after <CFF> tag
No other table does that.
2013-12-16 01:29:16 -05:00
Behdad Esfahbod
283fb26820 By default, don't load fonts lazily
Lazy loading has implications on how people use objects.
So, by default, don't load lazily.  This only affects
GSUB/GDEF/GPOS/etc and is closer to what fonttools used
to do traditionally.

Turn lazy loading on in subset and inspect.
2013-12-16 00:52:29 -05:00
Behdad Esfahbod
43d7ac16b1 py23 Similar encoding fix in post table 2013-12-16 00:05:14 -05:00
Behdad Esfahbod
85a64db541 py23 Another cff encoding fix 2013-12-16 00:05:10 -05:00
Behdad Esfahbod
6c51f500fb [subset] Make sure objects are decompiled during subsetting
We need to ensureDecompiled() whenever an object is modified
before we look up any member of it.

Note that normally objects remaining decompiled until we try
to write them out is fine, except for when they depend on
font.getGlyphOrder().  This however, shouldn't normally happen
since if there's an object depending on the glyph list (eg. a
Coverage table), it should already have been process to subset
it according to the requested glyphs.  Or that's the idea at
least.  The few cases that were not handled are handled
explicitly now.

This was showing a bug when subsetting Cabin for example.
2013-12-15 23:15:15 -05:00
Behdad Esfahbod
fa95e87d42 [subset] Add more TODO items 2013-12-15 22:02:20 -05:00
Behdad Esfahbod
617ec41d4c Fix encoding conversion in CFF
Was broken with Python 3 and Salsa-Regular.otf for example.
2013-12-10 18:54:26 -05:00
Behdad Esfahbod
92af6a58b3 [subset] Work around OTS being stupid 2013-12-10 17:51:32 -05:00
Behdad Esfahbod
5fd8779fd3 [subset] Oops. Remove debug prints 2013-12-10 14:48:34 -05:00
Behdad Esfahbod
9041c2ddcd Actually add M_A_T_H_.py 2013-12-09 02:04:57 -05:00
Behdad Esfahbod
f952a22af7 Implement MATH table
Fixes https://github.com/behdad/fonttools/issues/67
2013-12-09 00:40:48 -05:00
Behdad Esfahbod
d76fa68785 Allow specifying table type as converter
Needed for upcoming MATH table.
2013-12-09 00:40:24 -05:00
Behdad Esfahbod
6bfee2cde5 Simplify Count writing
Needed for MATH table.
2013-12-09 00:35:15 -05:00
Denis Jacquerye
871495aff5 Add support for FontForge time stamp table
Fixes https://github.com/behdad/fonttools/issues/56
2013-12-08 19:32:21 -05:00
Behdad Esfahbod
10a3fff5cb [subset] Fixup --recommended-glyphs 2013-12-08 15:22:32 -05:00
Behdad Esfahbod
494d9d139e Remove eexecOp C extension
It hasn't been working:

  6102ba7500

And it's only used to load Type1 fonts, so who cares if the Python
implementation is slow...
2013-12-07 17:36:12 -05:00
Behdad Esfahbod
c745f69d8a [subset] Remove unnecessary workaround 2013-12-07 16:06:14 -05:00
Behdad Esfahbod
6d658cf0ea Minor 2013-12-07 16:06:10 -05:00
Behdad Esfahbod
3db5e11c1f [subset] Remove redundant language systems
After subsetting, remove language systems that are effectively
the same as the default language system.
2013-12-07 12:54:44 -05:00
Behdad Esfahbod
b23b4cefda Fix ClassDef
Ouch.  Broke it in 63b257e677993295ee015e02b92ff438a5e91135.
2013-12-07 12:45:28 -05:00
Behdad Esfahbod
1a4f96b787 Remove total_ordering
Upon studying further, we don't need it.  Since we only expect
comparing objects of the same type, just having __lt__ is enough.
2013-12-07 12:17:32 -05:00
Khaled Hosny
9c573019d5 Fix compiling back Times New Roman font
This has been broken since f2c2b4d38bd7bba23db71936262db984e4b7aebb,
assigning a new object to a function argument will not change the
original one, so we need to return the modified list.
2013-12-07 12:08:09 -05:00
Behdad Esfahbod
dc0ce0b498 py23 fixes for psLib and t1Lib
Still not working with Python 3 as psLib's PSTokenizer subclasses
StringIO and expects it to have buf and pos.  Need to rewrite
this to implement StringIO internally.
2013-12-07 12:04:23 -05:00
Behdad Esfahbod
273a90074a Return NotImplemented 2013-12-07 03:40:44 -05:00
Behdad Esfahbod
56da965344 Add @total_ordering to classes with __lt__ 2013-12-07 03:35:16 -05:00
Behdad Esfahbod
8ea6439d3b Implement __ne__ when __eq__ is defined 2013-12-06 22:25:48 -05:00
Behdad Esfahbod
ec9436d7f6 [subset] Remove unreferenced features 2013-12-06 21:58:41 -05:00
Behdad Esfahbod
9d2481bedf [subset] Comments 2013-12-06 21:42:36 -05:00
Behdad Esfahbod
baa97d6f17 [subset] Minor 2013-12-06 21:12:05 -05:00
Behdad Esfahbod
98753abb91 Update table list for sbix 2013-12-06 19:55:29 -05:00
Behdad Esfahbod
de85e4599f 2to3 sbix code
This seems to work now.

At some point we should go back and clean up and merge datastructures
between the four different color font formats.
2013-12-06 19:53:28 -05:00
Behdad Esfahbod
1b8cde1b6f Fix imports 2013-12-06 19:41:49 -05:00
Behdad Esfahbod
4801a3ae39 Whitespace 2013-12-06 19:40:00 -05:00
Behdad Esfahbod
f1394f3fdd Initial sbix support from Jens Kutilek 2013-12-06 19:35:09 -05:00
Behdad Esfahbod
d0a85754fe Remove unused data 2013-12-06 17:56:28 -05:00
Behdad Esfahbod
1112495ae5 Simplify mac_epoch_diff 2013-12-06 17:56:09 -05:00
Behdad Esfahbod
65d3a02d16 Simplify date parsing 2013-12-06 17:47:14 -05:00
Behdad Esfahbod
b8e1afa809 Use struct format 'Q' to read/write 64bit integers 2013-12-06 17:26:09 -05:00
Behdad Esfahbod
5e36f854aa Remove redundant code 2013-12-06 17:16:57 -05:00
Behdad Esfahbod
05a2862a39 [subset] Ignore out-of-range glyphIDs
We don't want to support out-of-range glyphIDs in cmap or GSUB.
Explicitly drop them.
2013-12-04 23:07:55 -05:00
Behdad Esfahbod
ebcad976c8 [subset] Minor 2013-12-04 23:00:52 -05:00
Behdad Esfahbod
650a38fffc Relax some warnings 2013-12-04 22:52:57 -05:00
Behdad Esfahbod
e5bee3716e Allow converting 'glyphXXX' to glyphID
There was an inconsistency: when allowVID was False, we were allowing
gid->glyphXXX, but not the reverse.  This was allowing some fonts to
be loaded, but then not to be written back.  Fix that.
2013-12-04 22:46:29 -05:00