3898 Commits

Author SHA1 Message Date
Cosimo Lupo
7d975f7ada
Bump version: 3.37.0 → 3.37.1.dev0 2019-01-28 21:56:19 +00:00
Cosimo Lupo
2def727585
Release 3.37.0 2019-01-28 21:56:18 +00:00
Khaled Hosny
354b89c068 [feaLib] Implement ValueRecord.asFea()
ValueRecord had a makeString() method that takes an optional “vertical”
argument, but no code outside the tests sets this argument. Renamed it
to asFea() and dropped the “vertical”, so that it consistent with the
rest of feaLib.ast classes.
2019-01-28 11:52:36 +02:00
Cosimo Lupo
0293a392ad
varLib: apply HIDDEN flag to fvar axis if hidden=1 in designspace axis
Fixes https://github.com/fonttools/fonttools/issues/1085
2019-01-27 10:57:08 +00:00
Khaled Hosny
f48f4cc6b4 [feaLib] Round-trip useExtension keyword 2019-01-27 12:16:35 +02:00
Denis Moyogo Jacquerye
18ac453781
Merge pull request #1467 from khaledhosny/voltlib-glyph-type
[voltLib] Accept COMPONENT glyph type
2019-01-24 14:24:18 +00:00
Khaled Hosny
cd553debc3 [voltLib] Accept COMPONENT glyph type 2019-01-24 13:55:53 +02:00
Cosimo Lupo
1bb55b5c7e
Merge pull request #1464 from anthrotype/svg-path-arc-to-cubic
svgLib: add support for converting elliptical arcs to cubic bezier curves
2019-01-24 12:25:49 +01:00
Cosimo Lupo
f0ab265000
svgLib: add support for converting elliptical arcs to cubic bezier curves
Fixes https://github.com/fonttools/fonttools/issues/1141

Uses code from Chromium Blink's SVG path parser, in SVGPathNormalizer::DecomposeArcToCubic
https://github.com/chromium/chromium/blob/master/third_party/blink/renderer/core/svg/svg_path_parser.cc#L169-L278

Each elliptical arc is approximated by series of cubic bezier curves, one cubic every 90-degree portion of an arc.
2019-01-24 10:59:59 +00:00
Chris Simpkins
7458cebda1 [ufoLib glifLib] minor typo fix 2019-01-23 11:21:06 -05:00
Khaled Hosny
b6ec12bad0 [voltLib] Distinguish different PROCESS_MARKS
PROCESS_MARKS followed by a group name is used for markAttachmentType
lookup flag, while followed by MARK_GLYPH_SET is used for
useMarkFilteringSet. The code parsed both correctly but did not
distinguish between the two in the generated AST as it should since they
compile to different lookup flags.
2019-01-23 10:18:44 +02:00
Cosimo Lupo
2150ef875f
py23: add backport for math.isfinite (python >= 3.2) 2019-01-22 15:42:54 +00:00
Khaled Hosny
4236772ec1 [voltLib] glyphSet() should return tuple
We need to maintain the glyph order and keep any duplicates.
2019-01-22 09:42:22 +02:00
Khaled Hosny
94633e9f46 [voltLib] Fix parsing glyph groups
* Fix ast.GroupDefinition.glyphSet() by using ast.GlyphName,
  ast.GroupName and ast.Range in Parser.parse_coverage_(), and making it return
  ast.Enum.

* Add ast.Enum.__len_() to fix the calculation of max_src and max_dest
  in Parser.parse_substitution_(). I’m not sure I understand the logic
  of this many to many check, will double check later.

* Update the test suite to reflect this. Had to add ast.Enum.__eq__() to
  make it less painful, and __hash__() as otherwise ast.Enum wouldn’t be
  used as a key in dicts (not sure this is a goo idea either, will
  double check later).
2019-01-22 09:42:22 +02:00
Cosimo Lupo
c0f4f21e0e
Merge pull request #1460 from anthrotype/fix-null-valuerecord1-format-a
[feaLib] distinguish missing value and explicit '<NULL>' for PairPos2 format A
2019-01-19 15:08:56 +00:00
Nikolaus Waxweiler
dd40dac5e0 Remove InstanceDescriptor.mutedGlyphNames
Closes https://github.com/fonttools/fonttools/issues/1417.
2019-01-19 14:13:32 +00:00
Cosimo Lupo
23f0b5f5b1
[feaLib.builder] do not make <NULL> ValueRecord 2019-01-19 12:11:14 +00:00
Cosimo Lupo
091b05296d
[feaLib] distinguish missing value and explicit '<NULL>' for PairPos2 format A
Fixes #1459
2019-01-19 11:46:05 +00:00
Garret Rieger
d376057fb6 Insert empty widths into hdmx when retaining gids. 2019-01-18 17:32:04 -08:00
Cosimo Lupo
6367810c0e
Bump version: 3.36.0 → 3.36.1.dev0 2019-01-17 17:01:58 +00:00
Cosimo Lupo
3a6c66a284
Release 3.36.0 2019-01-17 17:01:57 +00:00
Cosimo Lupo
7a2fea9843
[ttx] should also white-list 'no-recalc-timestamp' for getopt to work
aargh..

Follow up from #1455
2019-01-17 15:02:01 +00:00
Just van Rossum
176f2e8244
[cffLib] Fix for #1451 (#1456)
* a charstring is not guaranteed to end in an operator, so the final bytecodes 11 and 14 can be part of an encoded numeric value; so remove 'return' or 'endchar' at the program level instead of bytescode
* move non-CFF2 test+error to elif clause of earlier isCFF2 test
Fixes the remaining issue from #1451
2019-01-17 16:01:15 +01:00
Cosimo Lupo
0e47ea1fac
[ttx] add --no-recalc-timestamp option to keep original head.modified
Fixes #46
2019-01-17 13:26:59 +00:00
Cosimo Lupo
158a7a3d4b
Merge pull request #1452 from anthrotype/fix-cff2-ttx-dump
[cff2] fix AttributeError 'isCFF2' when dumping CFF2 with ttx
2019-01-17 13:10:31 +00:00
Cosimo Lupo
1702536150
psCharStrings: only assert no extra args on stack upon compile, not in toXML
Fixes #1451
2019-01-17 11:59:51 +00:00
Khaled Hosny
e529832362 [voltLib] Don’t try to read past END
The parser was still trying to read the next token even when the current
token was END, but I think it should just stop reading here. When
reading from TSIV table there can be null bytes at the end when would
cause an exception in the lexer.
2019-01-16 23:04:14 +02:00
Cosimo Lupo
a3dd59d6ea
Merge pull request #1447 from anthrotype/retain-gids-cff
[subset] set emptied CFF charstrings to 'endchar' with --retain-gids
2019-01-16 16:51:57 +00:00
Cosimo Lupo
fe40af6d99
minor 2019-01-16 16:10:13 +00:00
Cosimo Lupo
6b4474b2c4
[subset] actually, ignore the width of emptied charstrings
basically, implies setting them to their defaultWidthX, which is the most efficient
way to store these (unnecessary) piece of data.
2019-01-16 16:01:12 +00:00
Cosimo Lupo
3e400c8828
don't add width and endchar for empty glyphs if it's CFF2
This also seems to fix https://github.com/fonttools/fonttools/issues/1448
2019-01-16 14:34:41 +00:00
Khaled Hosny
ca716e0925 [voltLib] Fix check for duplicate anchors
When checking for duplicate anchors, the component number should be
taken into account since the same anchors can be used for different
components i.e. over ligatures.
2019-01-16 15:31:05 +02:00
Cosimo Lupo
93e791ab24
[varLib] use magic -0x8000 to ignore post.underline* for MVAR
googlei18n/ufo2ft#308 (comment)
googlei18n/ufo2ft#310
2019-01-16 11:25:29 +00:00
Cosimo Lupo
7d947c9fd8
[varLib] use magic 0x8000 to ignore post.underline* for MVAR
https://github.com/googlei18n/ufo2ft/issues/308#issuecomment-454079704
https://github.com/googlei18n/ufo2ft/pull/310
2019-01-15 16:16:40 +00:00
Cosimo Lupo
336abfcaf0
[subset] set charstring's effective width to 0 when --retain-gids
seems to be the consensus, despite this may add a few bytes when
the emptied glyph's width is different from PrivateDict.defaultWidthX
2019-01-15 15:24:26 +00:00
Cosimo Lupo
af1a0d1fe5
[subset] set emptied CFF charstrings to 'endchar' with --retain-gids
Part of #1446
2019-01-15 14:07:54 +00:00
Cosimo Lupo
c7b66dc59c
Merge pull request #1443 from fonttools/subset-retain-gids
[subset] Add --retain-gids to retain glyph indices
2019-01-15 11:30:38 +00:00
Cosimo Lupo
42ab9aba57
[ufoLib] rename deprecated fs.setbytes -> writebytes
Follow up of #1445
Fixes #1424
2019-01-15 11:07:04 +00:00
Nikolaus Waxweiler
f47fee933c
ufoLib, fs calls: Replace deprecated getbytes with readbytes (#1445)
fs 2.2.0 comes with some renamed APIs.
2019-01-15 09:49:24 +00:00
Behdad Esfahbod
dd081d64dc [subset] Add --retain-gids to retain glyph indices 2019-01-14 16:45:50 -05:00
Cosimo Lupo
b2fac2333e
[varLib] allow loading masters from TTX files as well
in a designspace document, the sources' filename attribute can now contain
a relative path to a .TTX file for that master, in addition to .TTF or .UFO
(the latter, resolved through a master_finder callable as before).
2019-01-14 16:32:51 +00:00
Cosimo Lupo
53ad36e42b
Bump version: 3.35.2 → 3.35.3.dev0 2019-01-14 14:26:25 +00:00
Cosimo Lupo
ea489baaf1
Release 3.35.2 2019-01-14 14:26:24 +00: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
Cosimo Lupo
fe19178ff0
Merge pull request #1438 from anthrotype/enable-varLib-labelNames
[varLib] use addMultilingualName method to support localized axis and instance names
2019-01-13 17:07:31 +00:00
Cosimo Lupo
48e72dab9b
varLib: use addMultilingualName for localised instance style names
designspaceLib: ensure instance localised names are set as unicode strings
2019-01-13 15:04:55 +00:00
Cosimo Lupo
e6d5b5531a
mutator: drop 'ltag' table if no longer referenced from 'name' table 2019-01-13 14:42:36 +00:00
Cosimo Lupo
acbc65c1a9
varLib: use addMultilingualName method to support localized axes 'labelname'
now that addMultilingualName method also adds mac names by default, we can use it in
varLib instead of addName.
The language identifiers are expected to be minimized, i.e. not contain default script/region
subtags -- until we implement the minimizeSubtags algorithm from ICU/CLDR:
https://github.com/fonttools/fonttools/issues/930
2019-01-13 13:39:15 +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