2764 Commits

Author SHA1 Message Date
Behdad Esfahbod
b1474a3993 Minor 2016-06-07 16:21:43 -07:00
Behdad Esfahbod
c4f8cbb6a1 [varLib/mutator.py] Update hmtx lsb after updating glyf bounds 2016-06-07 15:51:54 -07:00
Behdad Esfahbod
e53764a16d In calcIntBounds(), round values
The glyph coordinates in glyf table are going to be rounded when
writing out, so we should use the same mode of conversion to
integers.  Otherwise the xMin of a glyph might end up being
different from its actual minimum X.
2016-06-07 15:47:02 -07:00
Behdad Esfahbod
d1424e9d5a Improve solveCubic() against rounding issues
Might fix https://github.com/behdad/fonttools/issues/617
2016-06-07 14:16:42 -07:00
Behdad Esfahbod
c794ff85d6 Fix typo in comments 2016-06-06 22:06:33 -07:00
Cosimo Lupo
62a6222652 Merge pull request #614 from moyogo/fixunescape
[feaLib]: fix unescape_mac_name_string() and unescape_windows_name_string()
2016-06-01 18:06:36 +01:00
moyogo
70a60433f8 [feaLib]: fix unescape_mac_name_string() and unescape_windows_name_string() 2016-06-01 17:33:15 +01:00
justvanrossum
123d7c10b6 Found a font that has an empty SingleSubst mapping. While that's silly, it's not necessarily illegal. FontTools, however, would crash with an AssertionError upon compilation. Fixed. 2016-05-28 22:20:31 +09:00
Behdad Esfahbod
18f70c75c5 [varLib] Add interpolation functions
Untested.
2016-05-26 13:34:37 -07:00
Behdad Esfahbod
84d34353e3 Merge pull request #608 from khaledhosny/file-attribute
Check for file attribute before deleting it
2016-05-19 20:01:06 +01:00
Khaled Hosny
f88c43d105 Check for file attribute before deleting it
I don’t know why this is happening, but I’m getting attribute error when
I build https://github.com/khaledhosny/mada with compreffor
optimisations on.
2016-05-19 20:50:10 +02:00
Cosimo Lupo
ca8e49b6f5 subset: fix typo
Ouch.
2016-05-16 17:05:46 +01:00
Cosimo Lupo
920c6a8249 subset: set maxp.maxStorage to 0 when --no-hinting option is passed
'maxStorage' is the maximum number of Storage Area locations used.
If there's no hinting, it should be 0.
2016-05-16 15:57:17 +01:00
Cosimo Lupo
6c1c2a44d1 cffLib: use tostr() when getting SID of indexed string (or we end up with duplicates in py3)
I noticed this issue while porting compreffor to py3. In my test fonts, the binary
CFF tables as generated with python 2 sometimes were slightly different from the
ones generated with python 3, although the TTX dump was identical!

It turns out, when running in Python 3, cffLib adds extra entries to the
list of CFF indexed strings, because of bytes vs str.

The `IndexedStrings.getSID` method takes an input string 's' and and returns
the SID integer for that string. If it's a new string, it gets appended to the
list, as well as to an internal strings-to-SID mapping, so that the same SID
value is returned for any given string.

The problem with python 3 was that, if the input string was of `bytes` type
instead of `str`, then the test for inclusion (the dict's `__contains__`)
would return False, and as a result the "same" string (e.g. "Regular" and
b"Regular") could be encoded twice in the list of CFF strings.

(yes, we desperately need unit tests for cffLib...)
2016-05-16 13:11:46 +01:00
justvanrossum
650aae7cf3 making error and warning consistent #604 2016-05-13 07:10:47 +02:00
justvanrossum
1394416821 Better error message for broken hmtx/vmtx table, addressing #604. 2016-05-13 07:07:52 +02:00
Behdad Esfahbod
26bb99e1c3 [subset] Whitespace 2016-05-12 13:40:14 +02:00
Behdad Esfahbod
cd914c9575 [subset] Protect against some more prematurely-short arrays 2016-05-12 13:40:14 +02:00
Behdad Esfahbod
85750a864a [subset] Protect against prematurely-short arrays GPOS 2016-05-12 13:40:14 +02:00
Behdad Esfahbod
18e53dbdf5 [varLib] Minor 2016-05-12 13:40:14 +02:00
Cosimo Lupo
7e02e6c8a4 Merge pull request #603 from rsheeter/master
Broadcast timing parts as well as final formatted message
2016-05-12 03:36:19 +02:00
Rod Sheeter
df2c2c7128 Verify that we can see individual parts of timing messages 2016-05-11 17:39:37 -07:00
Rod Sheeter
74e7400097 Minimal change to allow Google Fonts to easily capture subset timings serverside via log handler. 2016-05-11 12:59:37 -07:00
Cosimo Lupo
a796b03366 py23: raise Py23Error when using 'xrange'
see https://github.com/behdad/fonttools/pull/600#issuecomment-216935319
2016-05-04 18:31:13 +01:00
Cosimo Lupo
d3cfcbb5ed Merge pull request #600 from anthrotype/xrange
py23: always use the iterator version of (x)range
2016-05-04 17:52:00 +01:00
Cosimo Lupo
7efb32b2de py23: always use iterator whether one uses 'range' (py3) or 'xrange' (py2) 2016-05-04 17:16:39 +01:00
Behdad Esfahbod
0204b66d30 [symfont] Simplify lambdify
A possible alternative solution to the proposed dummify solution...

Might fix https://github.com/behdad/fonttools/issues/595
2016-04-30 15:49:44 +02:00
Cosimo Lupo
9e0bc1cfeb Merge pull request #598 from khaledhosny/ttglyphpen-int-component-coord
Make sure component coordinates are integers
2016-04-29 23:51:03 +01:00
Khaled Hosny
b5afd862e1 [glyf] Round component offset before compiling
We can get a float here.
2016-04-30 00:16:15 +02:00
Cosimo Lupo
bdd0e6768f Merge pull request #594 from anthrotype/cElementTree
varLib: use cElementTree if available to parse designspace
2016-04-28 15:51:26 +01:00
Cosimo Lupo
ce15359dc4 travis: set 'osx_image' to 'xcode7.3' instead of 'osx10.11'
https://docs.travis-ci.com/user/languages/objective-c#Supported-Xcode-versions
2016-04-28 15:39:59 +01:00
Cosimo Lupo
70ec8513d0 varLib: use cElementTree if available to parse designspace
The C implementation of ElementTree is included in CPython since 2.5.
It's got the same API and is up to 20 times faster than the Python implementation.
We'd better use it.
2016-04-28 09:56:21 +01:00
Behdad Esfahbod
7a9c6be76c [mtiLib] Warn if trailing tabs are found 2016-04-27 17:04:25 -07:00
Behdad Esfahbod
71633457df [mtiLib] Ignore trailing tabs 2016-04-27 16:58:38 -07:00
Behdad Esfahbod
973270e7f9 [mtiLib] Assert that glyph name is not empty 2016-04-27 16:58:33 -07:00
Sascha Brawer
9f287353f3 [CPAL] Support CPAL table version 1 2016-04-27 13:15:45 +02:00
Behdad Esfahbod
da4d097234 [varLib.mutator] Add minimal docstring 2016-04-27 01:41:48 -07:00
Behdad Esfahbod
5fdd980564 [varLib.mutator] Remove copy-pasta comments 2016-04-27 01:40:46 -07:00
Behdad Esfahbod
3238b4270e [varLib] Add mutator, which instantiates a variation font
Run, eg:

$ python mutator.py ./NotoSansArabic-GX.ttf wght=140 wdth=85

API to be cleaned up.
2016-04-27 01:30:59 -07:00
Behdad Esfahbod
e13f46c1dd [varLib] Add _SetCoordinates() 2016-04-27 01:30:12 -07:00
Behdad Esfahbod
e391cdb787 [glyf] GlyphCoordinates: Implement __del__() 2016-04-27 01:14:08 -07:00
Behdad Esfahbod
e36b7069d9 [glyf] GlyphCoordinates: Upgrade to float in math ops if needed 2016-04-27 01:11:40 -07:00
Behdad Esfahbod
ac26b33f48 [varLib] Copy coordinates before modifying 2016-04-27 00:25:31 -07:00
Behdad Esfahbod
e963a5b2c9 [varLib] Remove unused imports 2016-04-27 00:21:46 -07:00
Behdad Esfahbod
f7d390a955 [varLib] Minor refactoring, and bug fix 2016-04-27 00:15:07 -07:00
Behdad Esfahbod
c8b5b618e0 [varLib] Minor simplification 2016-04-26 23:59:39 -07:00
Behdad Esfahbod
a9098a0d06 Merge pull request #590 from n8willis/master
Typo.
2016-04-26 22:56:37 -07:00
n8willis
8325ae8c00 Fix berstein typo. 2016-04-26 19:16:46 -05:00
Sascha Brawer
9e7e77bdf4 [CPAL] Share color records when possible 2016-04-26 17:40:00 +02:00
Sascha Brawer
15781e4183 Add unit tests for handling CPAL table 2016-04-26 11:53:09 +02:00