12141 Commits

Author SHA1 Message Date
Behdad Esfahbod
f5a6c2f1de Add TravisCI settings 2015-03-03 09:14:54 -08:00
Behdad Esfahbod
612c70dada [SVG] Support gzip-compressed SVG tables
Set font['SVG '].compressed=True to enable.  Here's a snippet to convert a
WOFF-compressed SVG+OpenType font to a compressed SVG+OpenType non-WOFF font:

from fontTools.ttLib import TTFont
font = TTFont("NotoColorEmojiSvg.woff")
font['SVG '].compressed=True
font.flavor=None
font.save("NotoColorEmojiSvgCompressed.ttf")
2015-03-02 15:41:57 -08:00
Behdad Esfahbod
b1f46be65c Minor 2015-03-02 15:22:39 -08:00
Behdad Esfahbod
9fc8ac0559 Whitespace 2015-03-02 13:05:29 -08:00
Behdad Esfahbod
5a7ec608c8 Fix SVG doc length calculations
Patch from Doug Felt.
2015-02-23 14:03:06 -08:00
Erik
eb1c0f7fba identifier keyword to beginPath
mathGlyph -> PointToSegmentPen -> drawPoints -> pointPen -> beginPath
gets an ‘identifier’ argument from the ufo3 drawPoints. Which trips an
error. This alleviates the problem but does not address anything that
beginPath should be doing with the identifier.
2015-02-22 09:45:07 +01:00
vitalyvolkov
3042fcf989 Handle exception IndexError when accessing out of range glyphs 2015-02-02 13:47:55 +02:00
Behdad Esfahbod
8af5c69ea0 Unbreak backward compatibility re _h_e_a_d.mac_epoch_diff
Fixes https://github.com/behdad/fonttools/issues/210
2015-01-22 11:21:43 -08:00
Behdad Esfahbod
21af87536f [cmap] Split last segment of a format 4 efficiently
Fixes https://github.com/behdad/fonttools/issues/189
2015-01-22 00:10:01 -08:00
Behdad Esfahbod
0d5d12e02a Adjust 'feat' table format
As discussed here:
730bedd3d1
2015-01-21 15:46:30 -08:00
Behdad Esfahbod
a1c013bd8b Add Snippets/README 2015-01-21 13:18:15 -08:00
Behdad Esfahbod
cb6c9d092d Add snippet to subset fpgm functions 2015-01-21 13:17:11 -08:00
Behdad Esfahbod
4362cb49f3 In getGlyphSet(), pull glyph advance from hmtx even for CFF fonts
That's the right thing to do.

Also fixes this:
https://github.com/robofab-developers/robofab/issues/28
2015-01-08 12:53:58 -08:00
Behdad Esfahbod
8ef5adc4af Move draw() implementation to a better place 2015-01-08 12:28:42 -08:00
schriftgestalt
adfe7f293a add some missing return values 2015-01-08 09:46:13 -08:00
Behdad Esfahbod
a0dfcb496e Align instruction comments at tab stop
Makes them much more readable.
2015-01-05 17:49:38 -08:00
schriftgestalt
5d66d59a1f Add comments with names of TrueType instruction to assembly 2015-01-05 17:45:09 -08:00
Sam Fishman
de66a6466c [subset] Add --desubroutinize
This seems to both make the font smaller for small subsets, and works
around a bug in our CFF hint stripping logic.

So, if you are passing --no-hinting, do pass --desubroutinize.
2015-01-05 15:53:56 -08:00
Behdad Esfahbod
825ef55a95 Merge pull request #206 from olivierberten/dates
Regard very low datetimes as unix timestamps
2015-01-03 14:11:14 -08:00
Olivier Berten (selapa.net)
ff84e2dadd Regard very low datetimes as unix timestamps 2015-01-03 23:04:10 +01:00
Behdad Esfahbod
8a7a20c4b1 Fix indent 2015-01-02 13:14:26 -08:00
Behdad Esfahbod
b056318ca9 Ignore top four bytes of head table timestamps
Warn instead.
2015-01-02 13:08:57 -08:00
Behdad Esfahbod
15f2bb1e2f Fixup previous commit 2015-01-02 13:02:36 -08:00
Behdad Esfahbod
ee425b4350 Adjust for Python 3.3 change in gmtime() exception type
https://github.com/behdad/fonttools/issues/99#issuecomment-66776810

Fixes https://github.com/behdad/fonttools/issues/99
2015-01-02 12:54:19 -08:00
Behdad Esfahbod
f0200def0c Refactor timestamp code into misc.timeTools 2015-01-02 12:53:16 -08:00
Tal Leming
a3d4e90146 Merge pull request #25 from graphicore/fix-writing-plist
UFOReader/UFOWriter fixes and updates
2014-12-31 10:46:34 -06:00
Tal Leming
a25b4537df Merge pull request #27 from robofab-developers/revert-24-fix-reading-plist
Revert "Fix reading plist"
2014-12-31 10:42:52 -06:00
Tal Leming
e45ab4755b Revert "Fix reading plist" 2014-12-31 10:42:02 -06:00
Tal Leming
eeb594b66d Merge pull request #24 from graphicore/fix-reading-plist
Fix reading plist
2014-12-31 10:41:47 -06:00
Behdad Esfahbod
d86755bd45 Really fix fixedToFloat() this time
And simplify.  Fixes regression introduced two commits ago.

Fixes https://github.com/behdad/fonttools/issues/205
2014-12-29 11:56:39 -08:00
Behdad Esfahbod
db3b2817bf Add more tests to fixedToFloat(), showing previous commit is broken
Fix coming.
2014-12-29 11:30:48 -08:00
Behdad Esfahbod
97a07ce536 Improve fixedtoFloat()
Fixes https://github.com/behdad/fonttools/issues/205
2014-12-28 23:52:46 -08:00
Behdad Esfahbod
4447a76c33 [subset] If DSIG is to be retained, drop all signatures
Now DSIG can be retained by passing --drop-tables-=DSIG.
The embedded signatures will be dropped but empty table
retained.

Fixes https://github.com/behdad/fonttools/issues/145
2014-12-09 19:02:39 -08:00
Behdad Esfahbod
3560ee4c43 [subset] Update maxp values when dropping hinting
Fixes https://github.com/behdad/fonttools/issues/201
2014-12-09 18:53:37 -08:00
Lasse Fister
0cd65fb5e0 Refactor and fix wrong usage of UFOReader._readPlist
All cases where UFOReader._readPlist was used suffered
from calling it with the fully constructed path where
it expected just the relative path/fileName of the plist.

Also, all cases had the similiar pattern of checking if
the file exists before trying to read it.

This replaces that pattern by `_getPlist`. The method has
a `default` argument that acts similar to the `default`
argument of the builtin function `getattr` i.e. when
`default is None` the requested plist is mandatory.
2014-12-08 23:20:16 +01:00
Lasse Fister
b7dca42398 Add additional location for xmlWriter
Analogous to 42b7d1239e
by @benkiel
2014-12-08 23:14:41 +01:00
Lasse Fister
5a2a814d92 Define UFOReader._checkForFile as an alias of os.path.exists
Maybe we should rather replace it with os.path.exists, as this
would make the code easier to read. Also os.path.exists is already
used very often in ufoLib.__init__
2014-12-08 23:14:31 +01:00
Lasse Fister
e875cfe3ec Add default layerOrder to writeLayerContents 2014-12-08 23:11:55 +01:00
Lasse Fister
24676b3ebb Repair and refactor UFOWriter._writePlist to be more DRY
`UFOWriter._writePlist` constructs the full path to the file to be written;
but the calling code did so, too.

This reliefs the calling code of `UFOWriter._writePlist` from knowing
how to construct the full path and thus makes the code more DRY.
Also, this fixes the faulty behavior that was caused by the double
path construction.
A further new helper `UFOWriter._deleteFile` was added to fully enable the
removal of path construction in the callers.
2014-12-08 23:10:46 +01:00
Lasse Fister
b498155890 use shared _getPlist implementation in UFOWriter 2014-12-08 21:33:39 +01:00
Lasse Fister
d8788cc8d5 prepare sharing of UFOReader._getPlist implementation 2014-12-08 21:33:33 +01:00
Lasse Fister
39af9f6495 Refactor and fix wrong usage of UFOReader._readPlist
All cases where UFOReader._readPlist was used suffered
from calling it with the fully constructed path where
it expected just the relative path/fileName of the plist.

Also, all cases had the similiar pattern of checking if
the file exists before trying to read it.

This replaces that pattern by `_getPlist`. The method has
a `default` argument that acts similar to the `default`
argument of the builtin function `getattr` i.e. when
`default is None` the requested plist is mandatory.
2014-12-08 21:31:46 +01:00
Lasse Fister
d8dccbfe9b Add additional location for xmlWriter
Analogous to 42b7d1239e
by @benkiel
2014-12-08 21:27:50 +01:00
Lasse Fister
418b6859c8 Define UFOReader._checkForFile as an alias of os.path.exists
Maybe we should rather replace it with os.path.exists, as this
would make the code easier to read. Also os.path.exists is already
used very often in ufoLib.__init__
2014-12-08 21:27:24 +01:00
Behdad Esfahbod
09c5bd1266 Merge pull request #202 from tomByrer/patch-1
Read documentation.html as webpage
2014-12-04 17:30:11 -08:00
Tom Byrer
41ba68d646 Read documentation.html as webpage
pro-tip: use rawgit.com to read HTML
Won't handle getting slammed on HN though ;)
2014-12-04 18:21:31 -07:00
Behdad Esfahbod
d8eba8555c Merge pull request #198 from moyogo/py3tsi1
[TSI3] use bytes literal and tobytes()
2014-12-02 14:33:30 -08:00
moyogo
2499ea3521 [TSI1] use tobytes() 2014-12-02 21:58:45 +00:00
moyogo
6021331a70 [TSI1] Use bytes literal 2014-12-02 21:45:21 +00:00
Behdad Esfahbod
3715f2d354 Unbreak Python3
Fixes https://github.com/behdad/fonttools/issues/197
2014-12-01 13:33:19 -08:00