745 Commits

Author SHA1 Message Date
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
Behdad Esfahbod
e06166b83a Fix SingleSubstFormat1 modulo math 2013-12-04 22:46:11 -05:00
Behdad Esfahbod
ebefbbaa58 Minor 2013-12-04 22:07:18 -05:00
Behdad Esfahbod
9a980a8d2d Minor 2013-12-04 22:00:31 -05:00
Behdad Esfahbod
57fb7264a0 [subset] Minor 2013-12-04 21:56:53 -05:00
Behdad Esfahbod
43f6e36347 Simplify Coverage table postRead 2013-12-04 21:54:12 -05:00
Behdad Esfahbod
63b257e677 Handle out-of-range glyphIDs in ClassDef 2013-12-04 21:49:00 -05:00
Behdad Esfahbod
6bd43247f2 [subset] Add allowVID option to load_font()
Not enabled right now.
2013-12-04 21:34:05 -05:00
Behdad Esfahbod
dc87372c88 Use True/False instead of 1/0 2013-12-04 21:28:50 -05:00
Behdad Esfahbod
f4e39bf363 Convert warning to warnings module 2013-12-04 21:17:13 -05:00
Behdad Esfahbod
19d7cf2b5f [subset] Handle non-existing ScriptList
As seen in CinzelDecorative-Regular.otf.
2013-12-04 21:13:11 -05:00
Behdad Esfahbod
9e6ef94b55 Use "is None" instead of "== None"
The latter hits the __eq__ method and can fail because we now
do not allow comparing objects of different types.

For example, was failing subsetting Andika-R.ttf.
2013-12-04 16:35:10 -05:00
Behdad Esfahbod
78c02b6af3 Fix T1CharString decompile()
self.program is never None; it's set to [] if using bytecode.
So fixup the check.
2013-12-04 13:16:49 -05:00
Behdad Esfahbod
cc13b7889d Simplify 2013-12-04 04:12:57 -05:00
Behdad Esfahbod
94968f3151 Use pure-Python StringIO, not cStringIO
misc.psLib tries to subclass StringIO.  It doesn't work with
the cStringIO version.

Change doesn't seem to affect performance of CFF, which is the
biggest StringIO user.

7279302238 (commitcomment-4767054)
2013-12-04 04:11:06 -05:00
Khaled Hosny
8851bcfd32 Add missing dot
Since 153ec402094adbea673e914385b87f1d99191d0b.
2013-12-04 08:54:12 +02:00
Khaled Hosny
ea48dba61d Add missing opening parenthesis
Accidentally removed in 153ec402094adbea673e914385b87f1d99191d0b.
2013-12-04 08:47:26 +02:00
Behdad Esfahbod
cc43f3a15c Fixup 2013-12-04 01:17:21 -05:00
Behdad Esfahbod
153ec40209 Fix a few pychecker warnings
Fixes https://github.com/behdad/fonttools/issues/58
2013-12-04 01:15:46 -05:00
Behdad Esfahbod
c40e26ec4c Fix stupid mishap 2013-12-04 00:20:19 -05:00
Behdad Esfahbod
83e2f34194 Implement compiling to ClassDef Format=1 2013-12-02 03:06:44 -05:00
Behdad Esfahbod
f2c2b4d38b Improve composite glyph bounds calculation
Extend GlyphCoordinates to transparently support float coordinates.
As a result, transformed glyph components now don't have their
coordinates rounded anymore.  This slightly changes bounding box
calculations.

There's also code added, but disabled, to calculate exact glyph
bounding box, but we don't seem to actually want that.
2013-12-01 13:36:09 -05:00
Behdad Esfahbod
81acddadbd Add optional progress to DefaultTable
Such that if dumping glyf/CFF failed and falling back to DefaultTable
implementation, toXML will match.
2013-12-01 04:05:40 -05:00
Behdad Esfahbod
21bae0e3db py23 fixes for psOperators 2013-11-29 20:27:21 -05:00
Behdad Esfahbod
70c46de635 Revert "Remove unused fontTools.misc.psOperators"
psOperators is still used by t1Lib.  I'm not sure whether I want
to drop t1Lib just yet.

This reverts commit f3a8aeada3ba54e16b0f7e6aa90ca59358668b85.
2013-11-29 20:24:58 -05:00
Behdad Esfahbod
f918ab4cf6 Fix typos
From
4d2d8c9642
2013-11-29 17:12:43 -05:00
Behdad Esfahbod
ea1d11be18 Remove nfntLib and fontLib
They are in no way relevant or related to anything we care about
these days.  t1Lib is different though.
2013-11-29 16:36:45 -05:00
Behdad Esfahbod
7279302238 py23 fixes for psLib 2013-11-29 16:31:21 -05:00
Behdad Esfahbod
b49aa66e61 Revert "Remove unused fontTools.misc.psLib"
psLib is still used by t1Lib.  I'm not sure whether I want to
drop t1Lib just yet.

This reverts commit e0f84aabfaea36a5a4e1dc161b6c47c3a0bc4e1b.
2013-11-29 16:31:00 -05:00
Denis Jacquerye
af1c9968b2 from __future__ imports must be first for python 3.3.2
adding \ to break lines in fontTools/misc/transorm.py
unneeded closing parenthesis in T_S_I__1.py
2013-11-29 16:03:42 -05:00
Denis Jacquerye
db08ee2c19 missing from __future__ import print_function in setup.py
python3: sum() can't sum bytes, using b''.join(seq) instead
2013-11-29 14:15:48 -05:00
Behdad Esfahbod
3fa26d783f py23 Use fixedToFloat() for fixed version numbers 2013-11-28 18:53:30 -05:00
Behdad Esfahbod
1336105c31 py23 Use fixedToFloat() in glyf table
Sample output:

Before: <component ... scale="0.599975585938" flags="0x1004"/>
After:  <component ... scale="0.6" flags="0x1004"/>

Now the Python 2 and 3 outputs agree on these.
2013-11-28 18:53:30 -05:00
Behdad Esfahbod
2d67a188b1 py23 Add fixedTools: Smart fixedToFloat() and floatToFixed()
Apparently Python 2 and Python 3 have different default
print precisions for floats.  Or at least with my build it
is the case.   As such, for example with amiri-regular.ttf
I see these annoying differences in the ttx output of the
two versions:

77203c77203
<       <component ... scale="0.5999755859375" flags="0x1004"/>
---
>       <component ... scale="0.599975585938" flags="0x1004"/>

That's just gross.  Specially when these numbers are show to
humans, while we know that's just 0.6.  The fixedToFloat()
routine in this module is smart enough to do that.

Not used yet.
2013-11-28 18:53:30 -05:00
Behdad Esfahbod
4069b39047 Simplify caselessSort() 2013-11-28 18:53:30 -05:00
Behdad Esfahbod
fd68c9d251 py23 Fixup SING/META tables
They have been totally broken for years.
2013-11-28 18:53:30 -05:00
Behdad Esfahbod
e388db566b py23 Use new-style classes
Such that we get the same semantics in both Python 2 and 3.
2013-11-28 18:53:30 -05:00
Behdad Esfahbod
b475c03b4d [inspect] py23 Use new-style classes 2013-11-28 18:53:30 -05:00