1224 Commits

Author SHA1 Message Date
Cosimo Lupo
aef41419f2
gvar: log the glyph name if any exception is caught when decompiling deltas 2019-04-03 10:54:54 +01:00
Miguel Sousa
ddff29cb5d Fix DeprecationWarning: invalid escape sequence 2019-04-01 14:04:14 -07:00
Cosimo Lupo
18f8a30305 TupleVariation: add scaleDeltas and roundDeltas method 2019-03-22 14:13:55 +00:00
Cosimo Lupo
2ee528e2fd Merge branch 'master' into partial-instancer 2019-03-21 15:26:27 +00:00
Cosimo Lupo
c6006a7f8c [glyf] remove_hinting should del program from composite glyph
Unlike simple glyphs, which always have 'program' attribute (even when empty, with no instructions)
in composite glyphs, it's the presence of 'program' attribute that determines whether
the optional WE_HAVE_INSTRUCTIONS component flag is set or not.
Thus, the trim method (with remove_hinting=True) should delete the attribute for
composite glyphs.

Fixes https://github.com/fonttools/fonttools/issues/1550
2019-03-21 12:16:54 +00:00
justvanrossum
20c93b9fdb use RecursionError, and provide an alias for RuntimeError for Py2 2019-03-17 18:18:10 +01:00
justvanrossum
12ec7f539e improve error message 2019-03-17 15:35:35 +01:00
justvanrossum
ac2413e905 [ttLib/glyf] raise TTLibError with the offending glyph name in the error message when a component (indirectly) references itself 2019-03-17 15:30:20 +01:00
Cosimo Lupo
3adcf8051c add glyf.getCoordinates method that only returns coordinates, and no controls 2019-03-12 19:01:26 +00:00
Cosimo Lupo
b4fd0e5ca0 varLib: move _{Get,Set}Coordinates to methods of glyf table class 2019-03-11 15:50:16 +00:00
Cosimo Lupo
742b1d784a gvar: minor whitespace
mixed tab/spaces freak out my vim
2019-03-08 15:56:38 -08:00
justvanrossum
723e7a1d3c updated inline github issue URLs 2019-03-06 16:01:28 +01:00
Cosimo Lupo
71e44a52ee TupleVariation.toXML: sort attrs min/value/max in TTX dump
It's more legible if the peak value is written after the min and before the max value
defining a given region.
2019-03-04 16:41:26 -08:00
justvanrossum
92e722365f whitespace 2019-03-04 11:32:32 +01:00
justvanrossum
26ec6054a9 no need for a variable with only one use of len(vorgs) 2019-03-04 11:31:26 +01:00
justvanrossum
65b337d4b9 removed unneeded use of operator.gititem and operator.setitem and replaced with idiomatic code 2019-03-03 13:12:50 +01:00
justvanrossum
26b986e7c9 removed unused import 2019-03-03 13:03:58 +01:00
justvanrossum
7c6239ac84 Changed map(operator...) into explicit for loop 2019-03-03 13:02:27 +01:00
justvanrossum
ce6dbdef92 Changed map(operator...) into idiomatic list comprehensions 2019-03-03 12:55:05 +01:00
justvanrossum
0acf7c7681 removed unused import 2019-03-03 12:27:44 +01:00
justvanrossum
7c319abbec remove some unused variables; test empty cmap for format 4 2019-03-03 11:59:59 +01:00
justvanrossum
d4a2d935c4 [cmap] changed some uses of list(map(...)) to list comprehensions an explicit loops, avoiding possibly large unneeded tmp lists; replaced use of oval() with int(); adding tests to verify all changes are covered 2019-03-03 10:30:05 +01:00
Cosimo Lupo
0cc1dda00d grUtils: must import lz4.block
otherwise one gets AttributeError: 'module' object has no attribute 'block'

I noticed this by change. The whole SIL lz4-compressed Glif/Silf tables is still untested...
2019-02-28 11:00:29 -08:00
Cosimo Lupo
173a0f5011 [C_P_A_L_] make Color a subclass of namedtuple
so that's comparable/hashable/immutable and can be used as key in a dict or set.

The fromXML instance method was dropped since it relied on the object being mutable.
A fromHex classmethod replaces it.
2019-02-08 01:16:47 +01:00
Cosimo Lupo
8350332461
{v,h}mtx: allow to compile/decompile even without {v,h}hhea table
when no horizontal/vertical header table is present, we assume numberOfHMetrics == maxp.numGlyphs.
This allows to compile/decompile incomplete fonts, only containing head, maxp, hmtx, loca and glyf (or CFF),
that is the bare minimum to temporarily store glyph outline and metrics data for use with sparse/intermediate
master TTFs in varLib.
See https://github.com/googlei18n/ufo2ft/issues/308
2019-01-14 13:45:24 +00:00
justvanrossum
d938668cc2 some purely cosmetic whitespace edits 2019-01-10 19:35:34 +01:00
Just van Rossum
6f7c0f1d09
[ttLib] cmap format 14 cleanup (#1437)
* cleanup cmap format 14 TTX format by removing redundant attributes
* don't output the name attr for a default mapping, instead of a glyph named 'None'
* still accept 'None' as an indicator glyph name, for bw compatibility
* swap order of TTX attrs uv and uvs
* make sure (unicode, glyphName) pairs are always tuples in uvsDict.
2019-01-10 19:19:35 +01:00
Miguel Sousa
f07d5e7dc0 [maxp] Include 'maxComponentElements' in the table's recalculation 2019-01-09 03:03:32 -08:00
Cosimo Lupo
683547dde2
Merge pull request #1359 from justvanrossum/addmultilingualnames-mac
[name] make addMultilingualNames() add mac names by default
2019-01-07 09:54:34 +00:00
justvanrossum
1828dae78a Use raw strings for regex patterns. Fixes #1389 2018-12-05 12:46:36 +01:00
Denis Moyogo Jacquerye
0c4f11f5ff
Merge pull request #1361 from moyogo/kerntable
Ignore the length of kern table sutable format 0
2018-11-20 13:41:13 +00:00
Denis Moyogo Jacquerye
46add5375d kern table: allow subtables larger than length value 2018-11-20 12:41:57 +00:00
Nyshadh Reddy Rachamallu
512bccf49e Add IDEF for GETVARIATION opcode 2018-11-15 15:18:03 -05:00
Martin Hosken
2cfc16a172 Remove redundant bug fix, add graphite dependencies 2018-11-06 15:21:32 +07:00
justvanrossum
8841d98652 [name] make addMultilingualName() also add Mac names by default. 2018-11-02 11:56:22 +01:00
Martin Hosken
9739247a81 Fix python3 file writing issues and table compression 2018-11-02 11:21:58 +07:00
Jens Kutilek
76e7b7a786
Add PointPen support to TT Glyph objects (#1334)
* Add drawPoints method to _g_l_y_f.Glyph
* Add drawPoints method to ttFont._TTGlyph
2018-10-18 11:52:38 +02:00
Cosimo Lupo
935aad1a25
DefaultTable: pass extra **kwargs in toXML (for glyf table class)
when ttx fails to decompile a buggy glyf table, the DefaultTable implementation is used,
but TTFont._tableToXML passes 'splitGlyphs' keyword argument to table.toXML when
the tag is 'glyf'.
Let's simply ignore it here.
2018-10-16 17:21:50 +01:00
Sascha Brawer
2011ccf6ec [morx] Clean up compilation of AAT action tables; add more tests 2018-09-24 20:15:54 +02:00
Sascha Brawer
4a1871ff62 [morx] Support AAT action type to insert glyphs 2018-09-24 18:14:01 +02:00
Jens Kutilek
7c8077a63d Add glyf flags bit6 to ttx output (#1316)
* Implement glyf outline flags bit 6 when decompiling/compiling

* Add test data for outline flag bit 6

* Rename flags, use bitwise OR for setting flag bit

* Remove unneeded code
2018-09-14 15:27:32 +02:00
Cosimo Lupo
5c2ea41fa6
Merge pull request #1310 from paullinnerud/master
TSIC table support a Visual TrueType source table
2018-09-14 11:40:43 +02:00
Cosimo Lupo
32aef4fc88
[G__l_o_c] import sys 2018-09-06 10:05:26 +01:00
Behdad Esfahbod
349cd94d17 [graphite] Fix for big-endian
Make all "if sys.byteorder..." and "byteswap" be on the same line for
earsier grep verification.

Fixes https://github.com/fonttools/fonttools/issues/1311
2018-09-05 21:12:53 -07:00
Paul Linnerud
df429df9ec TSIC Support for Visual TrueType
TSIC is a source table for Visual TrueType to maintain sources for the cvar variation table.
2018-08-22 16:48:42 -07:00
Behdad Esfahbod
05f95f0f58 [otBase] Try ExtensionLookup if other offset-overflow methods fail
If offset overflow happens other than between Lookup and SubTable, or
within SubTable, then we don't know how to fix it currently.  Now we
try to put that lookup in an Extension lookup anyway, since that will
isolate it and sharing with other lookups won't happen, hopefully
avoiding the overflow.

This is really a bandaid... What we want is the 99proof branch to
be finished and replace our current packing algorithm.

Fixes https://github.com/fonttools/fonttools/issues/1296
2018-07-25 11:06:44 -07:00
Behdad Esfahbod
642cb03296 Remove unused line of code 2018-07-25 11:06:44 -07:00
Cosimo Lupo
6e8e431dee
otTables: try to fix MarkBasePos subtable overflows
Fixes https://github.com/googlei18n/fontmake/issues/450
2018-07-19 17:52:00 +01:00
Cosimo Lupo
2798bf6d1f
otTables: print subtable type when can't split in fixSubTableOverFlows 2018-07-19 17:50:43 +01:00
Cosimo Lupo
d570fc038a
use otRound when rounding visual coordinates or deltas
So we now round towards +Infinity in:

- floatToFixed (which fully examplify that quotes from OT spec)
- psCharStrings: when packing floats as fixed 16.16
- t2CharStringPen: when rounding coordinates and advance widths
- subset: when rounding advance widths to compute average
- TupleVariation: rounding gvar deltas
- _g_l_y_f: when rounding coordinates: both in GlyphComponent.{x,y}
  and for GlyphCoordinates.toInt()
- _h_m_t_x: for rounding horiz/vert metrics
- varLib: rounding horiz metrics and deltas
2018-06-14 17:40:11 +01:00