3194 Commits

Author SHA1 Message Date
Khaled Hosny
f0e0954afc [feaLib] Micro optimization
Infer glyph classes only when we are going to use them.
2017-12-05 13:06:05 +02:00
Cosimo Lupo
df1e8c7702 [post] prune extra names already in standard Mac set
This should fix https://github.com/fonttools/fonttools/issues/1119

Running `ftxvalidator -T tt0004c_#1.ttf` no longer produces this error
message, but passes with 'NA'

```
Fatal
    post: The name data overflow the table bounds.
        kATSFontTestSeverityFatalError
```
2017-11-29 12:06:40 +00:00
Hugo Giraudel
6a5fc617de
Fix typo in --glyphs option description 2017-11-28 13:07:06 +01:00
Cosimo Lupo
ca8963e527 [subset] pass a PrivateDict instance to _delete_empty_subrs func 2017-11-27 20:29:11 +00:00
Cosimo Lupo
cad8a8c072 minor 2017-11-27 20:24:32 +00:00
Cosimo Lupo
42d11cfd3e [subset] delete empty SubrsIndex after subsetting
Fixes https://github.com/fonttools/fonttools/issues/994
2017-11-27 19:37:19 +00:00
Jens Kutilek
e51293f3f0
Merge pull request #1113 from fonttools/varlib-sharedpoints-fix-test
Don't share points in cvar by default
2017-11-27 18:01:48 +01:00
Jens Kutilek
cb6676f93e Don't share points in cvar by default (fails in Chrome), adjust tests to test both shared and private points in cvar 2017-11-24 19:06:36 +01:00
justvanrossum
e0c275896b modernized reading/writing code 2017-11-24 17:46:31 +01:00
justvanrossum
0eb40c6346 make poor old afmLib work on py3 2017-11-24 16:48:55 +01:00
Cosimo Lupo
d08d635a93 [glyf] make splitGlyphs output more compact
removed a few extra newlines
2017-11-23 19:05:30 +01:00
Cosimo Lupo
f2a8c787b1 minor whitespace 2017-11-23 18:39:11 +01:00
Cosimo Lupo
2b4b563171 Bump version: 3.20.1 → 3.21.0.dev0 2017-11-23 18:32:24 +01:00
Cosimo Lupo
17b89d9dde
Merge pull request #1035 from bamidei/split_g_l_y_f_to_one_per_file
Add ability to split glyphs to 1 glyph per ttx file.  Issue #153
2017-11-23 18:30:54 +01:00
Bill Amidei
feb4c0d2ed Another white-space update to align 2017-11-23 07:53:07 -08:00
Bill Amidei
818a4a2d1e Review comment update: Updated white-space and removed unused test data 2017-11-23 07:51:05 -08:00
Bill Amidei
de94613e08 Updates based upon review feedback for glyf to individual files; include table name in contentOnly file; Remove unnecessary parameters from toXML - leaving only the splitGlyphs optional additional parameter 2017-11-23 07:17:35 -08:00
Cosimo Lupo
b8482d9666 Release 3.20.1 2017-11-22 18:42:53 +01:00
Cosimo Lupo
1765ed772a [unicodedata] add script_name and script_code to __all__
and cast to str to avoid error with import * in python2.7

TypeError: Item in from list'' must be str, not unicode
2017-11-22 18:37:14 +01:00
Cosimo Lupo
99ea0a3986 [unicodedata] add script_code func and 'default' fallback arg
`script_code` does the reverse of `script_name`: it takes a long
script name and returns a 4-letter script code.

Both `script_name` and `script_code` raise KeyError by default,
but can optionally return a default value instead.
2017-11-22 17:46:44 +01:00
Cosimo Lupo
afd2490a6c [unicodedata] add script_name function
Converts four-letter script codes to human-readable long names
2017-11-22 17:41:23 +01:00
Cosimo Lupo
012688ac20 [Tests] adjust unicodedata_test to expect short script codes 2017-11-22 17:41:23 +01:00
Cosimo Lupo
54fa00499e [Scripts] use short codes, add NAMES dict with aliases 2017-11-22 17:41:23 +01:00
Cosimo Lupo
f419d44512 Bump version: 3.20.0 → 3.20.1.dev0 2017-11-21 12:33:24 +01:00
Cosimo Lupo
86b06cde45 Release 3.20.0 2017-11-21 12:31:34 +01:00
Cosimo Lupo
4dfea00356 [feaLib] report error with multiple runs of marked ' glyphs
As Martin Hosken reported in https://github.com/fonttools/fonttools/pull/1096,
feaLib currently incorrectly handles the case where a marked input
glyph sequence in a contextual chaining sub/pos rule is split into
multiple runs, rather than being a single continuous run of ' marked
glyphs.

The consensus there was to raise a syntax error like makeotf instead of
second-guessing and silently fixing it like fontforge does.
2017-11-21 11:42:28 +01:00
Cosimo Lupo
697b8d9af5 [unicodedata] add block and script_extension functions 2017-11-20 18:16:02 +01:00
Cosimo Lupo
8b50ed56d9 add auto-generated Blocks.py and ScriptsExtensions.py 2017-11-20 18:15:09 +01:00
Cosimo Lupo
1ed78b12f5 [unicodedata] rename scripts.py to Scripts.py
let's use the same names as the original UCD data files for simplicity
2017-11-20 17:37:45 +01:00
Cosimo Lupo
b53b878bdc [scripts] update auto-generated module
it now contains two list, one for the ranges and another for the script names
2017-11-20 13:38:49 +01:00
Cosimo Lupo
3442da1529 [unicodedata] use bisect.bisect_right function
CPython comes with a fast C implementation of bisect module.
This gives 4 to 5 times speed-ups over my pure-python version.
2017-11-20 13:30:17 +01:00
Cosimo Lupo
52d6131525 [unicodedata] add new module and 'script' function
The new `fontTools.unicodedata` module re-exports all the public
functions from the built-in `unicodedata` module, and also adds
additional functions.

The `script` function takes a unicode character and returns the
script name as defined in the UCD "Script.txt" data file.

It's implemented as a simple binary search, plus a memoizing
decorator that caches the results to avoid search the same
character more than once.

The unicodedata2 backport is imported if present, otherwise
the unicodedata built-in is used.
2017-11-17 19:17:17 +00:00
Cosimo Lupo
96dafe4afc [unicodedata] add auto-generated 'scripts' module
containing the script ranges and names from Scripts.txt
2017-11-17 19:16:45 +00:00
Cosimo Lupo
fdab63f0b6 [feaLib.ast] add __str__ to all AST elements
which calls the asFea() method,
so one can e.g. print(doc.statements[0])
2017-11-16 15:40:52 +00:00
Cosimo Lupo
99aa8b0c66 [feaLib.parser] keep supporting (deprecated) glyphMap argument
so we don't break backward compatibility if user code has Parser(path, glyphMap=...)
2017-11-16 14:25:43 +00:00
Cosimo Lupo
e8535f2280 [feaLib.parser] make Parser accept glyphNames iterable...
... instead of a glyphMap dict.

The parser does not actually need a reverse glyph order mapping as
it is not interested in knowing the glyphID from the glyph name,
but only whether a glyph is in the font or not.

This makes it easier for client code (e.g. ufo2ft feature compiler)
to use the feaLib Parser, without having to first construct and pass
it a glyphMap argument.
2017-11-16 13:46:27 +00:00
Jens Kutilek
a35707560c
Merge pull request #1101 from fonttools/beziertools
Move arc length calculations from pens.perimeterPen to misc.bezierTools
2017-11-14 13:38:10 +01:00
Jens Kutilek
dd558f5df8 Move arc length calculations from pens.perimeterPen to misc.bezierTools 2017-11-14 13:03:58 +01:00
Cosimo Lupo
f1049dcaa5 [arrayTools] fix undefined name in Vector._unaryOp
Thanks Miguel
ab02ce49d3 (commitcomment-25599266)
2017-11-14 11:23:12 +00:00
Behdad Esfahbod
8af430997d [varLib] Start generating STAT table
Right now just reflects the axes, and even that with certain limitations:
- AxisOrdering is set to the order axes are defined,
- Name-table entries are not shared with fvar.

Towards https://github.com/LettError/designSpaceDocument/issues/8
2017-11-13 21:25:04 -08:00
Behdad Esfahbod
22f3b466b4 [varLib] Add TODO 2017-11-13 21:01:27 -08:00
Cosimo Lupo
bb60cc4e2b
Merge pull request #1097 from anthrotype/py23-redirect-stream
[py23] Add backports for redirect_stdout/stderr context managers
2017-11-07 12:35:49 +00:00
Cosimo Lupo
350b73363b [py23] must define redirect_stderr for py3.4 2017-11-07 12:08:04 +00:00
Cosimo Lupo
d3251241be [py23] Add backports for redirect_stdout/stderr context managers 2017-11-07 11:54:28 +00:00
Cosimo Lupo
f100754ffb
Merge pull request #1093 from silnrsi/graphite
Fix small graphite round trip bugs
2017-11-07 09:53:36 +00:00
Martin Hosken
eb003ea697 Fix old bugs 2017-11-06 21:16:16 +07:00
Cosimo Lupo
8bae54c072 Bump version: 3.19.0 → 3.19.1.dev0 2017-11-06 12:30:30 +00:00
Cosimo Lupo
d8170131a3 Release 3.19.0 2017-11-06 12:30:30 +00:00
Jens Kutilek
b9bca702f6
[varLib] Try a set of used points instead of all points (#1090)
* Try a set of used points instead of all points when testing whether to share points.
* Amend comment, remove unused variable
2017-11-06 11:49:26 +01:00
Cosimo Lupo
d91faeaf1a
Merge pull request #1091 from readroberts/master
[CFF2] Fixes for writing PrivateDict BlueValues and Subrs to XML.
2017-11-06 10:13:57 +00:00