Adrien Tétar
1126e6edda
qtPen: use native quads impl
2016-07-25 11:14:13 -07:00
Cosimo Lupo
539a5010e5
subset: --recalc-average-width is disabled by default
2016-07-20 09:33:35 +01:00
Behdad Esfahbod
d96e246532
Make solveCubic() more robust
...
Fixes https://github.com/behdad/fonttools/issues/621#issuecomment-226671968
2016-07-19 22:50:09 -07:00
Miguel Sousa
2240bcbd22
Example that fails latest PointInsidePen ( #638 )
2016-07-19 22:39:57 -07:00
Cosimo Lupo
d1a27bd671
subset: add --recalc-average-width command-line option (on by default); log message if xAvgCharWidth changed
2016-07-19 22:54:05 +01:00
Khaled Hosny
efb32d5402
[subset] Recalculate OS/2.xAvgCharWidth
2016-07-18 01:35:18 +02:00
Behdad Esfahbod
10aaac53f2
Fix test
2016-07-16 21:58:41 -07:00
Behdad Esfahbod
81d84e6f85
Fix PointInsidePen
...
https://github.com/behdad/fonttools/issues/621
2016-07-16 21:47:37 -07:00
Behdad Esfahbod
9c037fc826
[gvar] Add TODO
2016-07-16 21:22:20 -07:00
Miguel Sousa
a00cacea96
Two more tests for pointInsidePen ( #622 )
2016-07-16 21:22:04 -07:00
Behdad Esfahbod
b1eeaa5151
[gvar] Fix point encoding
...
Where more than one run is used, it's only the first run's first point
that is absolute, all other values are relative.
Similar fix landing in FreeType soon. Fixes lizzard glyph (glyphname
"dollar") in Zycon.
2016-07-15 18:15:17 -07:00
Michael Yin
18b905b06d
[ttLib/pyftmerge] Handle cmap merge better ( #635 )
...
Changed the merge algorithm to properly handle cmap subtables
of type 4 and 12 with platform id and encoding ids of 3/1 and 3/10
respectively. All other subtables are not merged and ignored.
The resulting merged cmap table includes a subtable of format 4/3/1
and a format 12 subtable iff there are mappings outside of the BMP.
If one font has two codepoints that point to the same glyph,
and another font has the same code points pointing to two other glyphs,
keep the behavior where the first replacement glyph is stored in 'locl'
and output the third glpyh (or more) to let the user know that they were
dropped, instead of failing to merge the font.
Fixes #444
Fixes #322
2016-07-13 14:00:36 -07:00
Behdad Esfahbod
5cd1fbaff6
[subset] Clear CFF Encoding vector
...
Fixes https://github.com/behdad/fonttools/issues/620
2016-07-13 00:33:41 -07:00
Behdad Esfahbod
e9fb97d858
Fix overflow-fixing of Extension subtables
...
Fixes https://github.com/behdad/fonttools/issues/574
This was broken by 319643ad. Ouch!
Was quite a debugging session to pin it down.
2016-07-12 23:55:47 -07:00
Behdad Esfahbod
3b8387fa45
[merge] Sort FeatureList by feature tag
...
Fixes https://github.com/behdad/fonttools/issues/444
2016-07-11 17:02:26 -07:00
Behdad Esfahbod
53d78d9956
[merge] Fix for ClassDef.Format and Coverage.Format
...
Part of https://github.com/behdad/fonttools/issues/444
2016-07-11 16:30:14 -07:00
Denis Moyogo Jacquerye
4f83f4bbe1
tests: copy doctest as unittest in test_filenames
2016-07-11 13:49:59 +01:00
Denis Moyogo Jacquerye
bb21cb7c3a
userNameToFileName expects userName to be unicode strings, let it raise
...
if not
2016-07-11 13:49:59 +01:00
Adrien Tétar
ec0fe57545
filenames: only allow unicode in py2
...
i.e. restore the old behavior
2016-07-08 21:19:16 -07:00
Miguel Sousa
8bf1bd4f30
[cff] fix fetching of fdSelectIndex value
2016-07-06 10:27:02 -06:00
Miguel Sousa
c04a6d922c
[cff] fdSelect array only exists in CID fonts, so test for the presence of fdArray and set the selector value to None otherwise
2016-07-06 04:23:43 -06:00
James Godfrey-Kittle
797061679a
[mtiLib] Make tables in parsers, don't pass in
2016-06-30 14:16:58 -07:00
James Godfrey-Kittle
1b61637473
Add cmap handling to mtiLib
2016-06-30 12:50:39 -07:00
Cosimo Lupo
f92dcf36c1
don't write layerinfo.plist if 'lib' element is empty
2016-06-28 13:52:23 +01:00
Cosimo Lupo
f6689faf5b
glifLib: don't raise AttributeError if element.text attribute is None
...
When an element tree is built from code, or it is parsed from a string that was not pretty-printed (i.e. without indentation), the 'text' attribute of an Element instance can be None. So we must ensure it's not None before calling `strip()` method.
2016-06-25 19:04:24 +01:00
Tal Leming
321ea7f766
Merge pull request #33 from anthrotype/isinstance-mapping
...
validators: check isinstance of collections.Mapping rather than dict
2016-06-24 09:47:59 -04:00
James Godfrey-Kittle
5c723ebfb0
[feaLib] Don't assume feature has lookups in DFLT
...
It's possible for all of a feature's lookups to be in specific script
and/or language systems, so this code could crash.
2016-06-22 16:19:45 -07:00
James Godfrey-Kittle
e2186dec53
[feaLib] Don't set language when script is unset
...
Before, if someone tried to set the language before setting the script
a None/language language system would be created (with actual tag
"None" stored in the feature table). This defaults to tag DFLT and
fails when a non-dflt language is set for DFLT, since that's illegal.
2016-06-22 11:29:42 -07:00
James Godfrey-Kittle
aaf9294d97
[feaLib] Add another test for language systems
2016-06-21 16:40:17 -07:00
James Godfrey-Kittle
d1af1cfd4a
[feaLib] Fix exclude_dflt handling
...
This is to fix what I think was a misunderstanding of the exclude_dflt
keyword (and the implicit include_dflt option active by default).
Rather than including the following lookups in the default language
systems, I think it is used to include the lookups specific to default
language systems in the system defined by the current language
statement. Thus instead of registering a lookup in all default
systems when include_dflt is true, we should exclude the lookups
registered with default systems from the current system when
include_dflt is false.
2016-06-21 16:39:27 -07:00
Behdad Esfahbod
0deb34829c
[Snippets/interpolatable.py] Add preliminary script for detecting interpolation errors
...
Very basic. Right now detects if glyphs have wrong order of contours / components.
2016-06-15 18:46:59 +04:00
Behdad Esfahbod
220ff2b238
[pens.areaPen] Clean up a bit
...
Based on discussion in
https://github.com/behdad/fonttools/pull/618#issuecomment-226105824
2016-06-15 14:10:44 +04:00
Behdad Esfahbod
b0b049774c
Implement analytical curve length for quadratic beziers
...
This is multiple times faster, and tolerance-independent.
I'll explain how I arrived at this later.
2016-06-13 20:08:50 -04:00
Behdad Esfahbod
56c27f45c9
Speed up perimeterPen
...
It's still too slow, but an improvement.
Also, remove duplicate copy from symfont.
2016-06-13 18:50:01 -04:00
Behdad Esfahbod
71fb49962a
Improve perimeterPen tests
...
The tolerance on the pen is set to 0.5%, so it does not make sense
to test for accuracy for anything more than integers given the
values.
2016-06-13 18:47:03 -04:00
Tal Leming
89d8cfa7eb
Removing metainfo.plist is no longer expressly prohibited (it shouldn't be done though). Raise an error when removing a missing file.
2016-06-13 13:36:30 -04:00
Tal Leming
ea54c77670
Don't try to remove the root directory.
2016-06-13 13:33:31 -04:00
Tal Leming
be90029b22
Arguments were transposed.
2016-06-13 13:22:36 -04:00
Tal Leming
c864359fb2
Define writer.
2016-06-13 13:19:40 -04:00
Tal Leming
0e569793a7
The populated info objects should be written, not an empty object.
2016-06-13 13:17:36 -04:00
Tal Leming
bfba532621
Force the removal of non-empty directories during directory removal.
2016-06-13 13:13:56 -04:00
Tal Leming
15c4ff20a3
UFOLibError is now raised instead of GlifLibError.
2016-06-13 13:10:55 -04:00
Miguel Sousa
9efcaf05e4
Unit tests for AreaPen and PerimeterPen
2016-06-12 15:46:52 -07:00
Miguel Sousa
92e8455259
perimeterPen.py: make glyphset the first argument (like in all other pens)
2016-06-12 15:46:04 -07:00
Cosimo Lupo
c5ed6c6456
perimeterPen.py: handle implied lineTo in closePath
2016-06-12 11:49:00 +01:00
Cosimo Lupo
d51b88a234
areaPen.py: remove unused 'interpolate' function; call polygon_area directly in closePath
2016-06-12 11:37:02 +01:00
Cosimo Lupo
39f919f1f1
areaPen.py: calculate area under quadratic curve directly, using Green theorem
2016-06-12 03:14:09 +01:00
Cosimo Lupo
5f0e48e649
areaPen.py: make sure the first and last points of contour overlap
2016-06-12 03:13:32 +01:00
Cosimo Lupo
38359b054d
areaPen.py: invert sign of area (CCW is now positive)
2016-06-12 03:12:02 +01:00
Cosimo Lupo
c08e47ed47
perimeterPen.py: copy PerimeterPen from symfont.py
2016-06-11 23:07:23 +01:00