Khaled Hosny
04975b9a14
[subset] Prune GDEF.MarkGlyphSetsDef
...
Remove empty sets and fixup Lookup.MarkFilteringSet to use the new
indices.
2023-05-22 13:28:50 +03:00
Behdad Esfahbod
4c24a3e328
[varLib/merger] Fix merging of SinglePos with pos=0
...
Fixes https://github.com/fonttools/fonttools/issues/3111
2023-05-19 18:37:15 +02:00
Simon Cozens
65bc6105f7
[feaLib] Allow empty aalt features ( #3110 )
...
* Demote "feature has not been defined" to a warning
* Rework test
* Not my black
2023-05-17 15:08:08 +01:00
David Corbett
8b69b9412e
feaLib: Dedupe multiple substitutions with classes
2023-05-13 13:24:58 -04:00
Khaled Hosny
54e70b3cef
Bump version: 4.39.4 → 4.39.5.dev0
2023-05-10 18:28:22 +03:00
Khaled Hosny
4246c69e9a
Release 4.39.4
2023-05-10 18:28:21 +03:00
Khaled Hosny
88885ba9fc
feaLib: handle singleton class as a single glyph in multiple subst
...
This how GlyphsApp handles it and how it is handled in single
substitution.
2023-05-09 17:33:36 +03:00
خالد حسني (Khaled Hosny)
b6209e0510
Merge pull request #3103 from fonttools/multiple-subst-classes
...
feaLib: support multiple substitution with classes
2023-05-09 16:15:33 +03:00
Khaled Hosny
f642a2aac4
feaLib: support multiple substitution with classes
...
This is a GlyphsApp extension, (partially) documented [here][1], but it is a
useful one as it allows concise glyph insertion using decomposition
without having to maintain the list of glyphs in two places. E.g.
```fea
@upper = [A-Z];
lookup insert {
sub @upper by @upper connector;
} insert;
feature ccmp {
sub @upper' lookup insert x;
} ccmp;
```
As apposed to:
```fea
@upper = [A-Z];
lookup insert {
sub A by A connector;
sub B by B connector;
sub C by C connector;
sub D by D connector;
sub E by E connector;
sub F by F connector;
sub G by G connector;
sub H by H connector;
sub I by I connector;
sub J by J connector;
sub K by K connector;
sub L by L connector;
sub M by M connector;
sub N by N connector;
sub O by O connector;
sub P by P connector;
sub R by R connector;
sub S by S connector;
sub T by T connector;
sub U by U connector;
sub V by V connector;
sub W by W connector;
sub X by X connector;
sub Y by Y connector;
sub Z by Z connector;
} insert;
feature ccmp {
sub @upper' lookup insert x;
} ccmp;
```
1. http://handbook.glyphsapp.com/en/layout/multiple-substitution-with-classes/
2023-05-09 14:06:12 +03:00
Behdad Esfahbod
6a13bdc2e6
[featureVars] Remove unused argument
2023-05-02 10:57:43 -06:00
Behdad Esfahbod
5b96fff9ce
[featureVars] Process lookups for features other than rvrn last
...
Fixes https://github.com/fonttools/fonttools/issues/3097
2023-05-02 10:57:43 -06:00
Cosimo Lupo
39c9783bf8
add filter pen that explicitly emits closing line when lastPt != movePt
...
it can be useful when comparing two paths and testing whether then contain the same number/types of segments
2023-05-02 14:56:56 +01:00
Tim Maffett
61ca53ab10
fix ttx split tables option to work on source files which have been url encoded and contain the '%' character
2023-04-28 17:07:44 -07:00
Jens Kutilek
85c80be6b6
Fix missing composite instructions in ttx ( #3092 )
...
* Fix calculation of haveInstructions
* Add test
2023-04-25 16:21:24 +02:00
Cosimo Lupo
cb5aa96702
add missing __main__.py file to ttLib package, plus some tests
...
Fixes https://github.com/fonttools/fonttools/issues/17
2023-04-24 11:22:53 +01:00
Behdad Esfahbod
623f3f14be
[iup] Micro-optimize
2023-04-22 15:07:03 -06:00
Behdad Esfahbod
afd4695d26
[iup] Fix cython tests
2023-04-22 14:49:25 -06:00
Behdad Esfahbod
e92c79e0e8
[iup] Micro-optimize cython
2023-04-22 14:34:41 -06:00
Behdad Esfahbod
b5899772c7
[interpolatable] Use math.sqrt()
2023-04-22 14:10:11 -06:00
Behdad Esfahbod
7fd3f7632e
[bezierTools] Remove division hack
2023-04-22 12:50:25 -06:00
Behdad Esfahbod
dc60198f78
[bezierTools] Micro-optimize cython
2023-04-22 12:49:22 -06:00
Behdad Esfahbod
14ec21af40
[qu2cu] Micro-optimize cython
2023-04-22 12:43:33 -06:00
Behdad Esfahbod
a91c3381b5
[qu2cu] Remove division hack
2023-04-22 12:40:00 -06:00
Behdad Esfahbod
990afce0db
[cu2qu] One more annotation
2023-04-22 12:37:12 -06:00
Behdad Esfahbod
027f644d12
[cu2qu] Micro-optimize cython code
...
By defining some core functions as cfunc, so they inline.
Almost 10% speedup.
2023-04-22 12:29:08 -06:00
Behdad Esfahbod
0cb46862e0
[cu2qu] Remove another division hack
2023-04-22 12:17:57 -06:00
Behdad Esfahbod
3470b7494a
[cu2qu] Remove old hack
...
Python3 optimizes const division, and Cython doesn't need it anyway.
2023-04-22 12:13:27 -06:00
خالد حسني (Khaled Hosny)
3a4b9d770e
Merge pull request #3084 from fonttools/update-apple-url
...
Update link to Apple documentation
2023-04-21 00:24:22 +02:00
Behdad Esfahbod
57c7792477
[merge] Handle differing default/nominalWidthX in CFF ( #3070 )
...
* [merge] Handle None GDEF.table.MarkGlyphSetsDef
* [merge] Handle differing CFF nominal/defaultWidthX
Fixes https://github.com/fonttools/fonttools/issues/3069
* Update Lib/fontTools/merge/tables.py
Co-authored-by: Cosimo Lupo <clupo@google.com>
---------
Co-authored-by: Cosimo Lupo <clupo@google.com>
2023-04-19 12:14:41 -06:00
Just van Rossum
56b543826c
re-wrap
2023-04-18 14:38:50 +02:00
Just van Rossum
82441262e7
Update link to Apple doco
2023-04-18 14:37:34 +02:00
Colin M. Ford
edc3584d5b
Using set comprehension
...
Suggestion by anthrotype
Co-authored-by: Cosimo Lupo <cosimo@anthrotype.com>
2023-04-06 10:34:48 -04:00
Colin M. Ford
9656e3faf1
formatting with black to get lint to pass
2023-04-05 22:33:38 -04:00
Colin M. Ford
491bd74f4b
Missed a m0idx
2023-04-05 18:22:21 -04:00
Colin M. Ford
9c1380be96
Oops, UFOLib's getGlyphSet
does not have an items
function
2023-04-05 18:21:17 -04:00
Colin M. Ford
4a991d1d89
Comment corrections
2023-04-05 17:12:43 -04:00
Colin M. Ford
208c36800b
Oops, any
could potentially block a list like [None, [], []]
, which is not what we want
2023-04-05 17:11:30 -04:00
Colin M. Ford
7a86dd325e
Rewriting varLib.interpolatable to allow for sparse masters + tests
2023-04-05 16:35:03 -04:00
Cosimo Lupo
3b9a73ff83
Bump version: 4.39.3 → 4.39.4.dev0
2023-03-28 16:30:30 +01:00
Cosimo Lupo
abd7b5b15d
Release 4.39.3
2023-03-28 16:30:29 +01:00
Cosimo Lupo
3615b565ca
sbixGlyph: don't use imageData for empty glyphs with graphicType=None
...
Fixes https://github.com/fonttools/fonttools/issues/3059
2023-03-27 15:23:13 +01:00
Cosimo Lupo
e73a098dec
Merge pull request #3053 from fonttools/fix-spool-temp-seekable
...
fix SpooledTemporaryFile has no seekable method
2023-03-22 10:47:08 +00:00
Behdad Esfahbod
14a767719b
[bezierTools] Add link to algorithm
...
https://github.com/fonttools/fonttools/issues/3055
2023-03-21 13:30:30 -06:00
Cosimo Lupo
4543910367
[ttFont] fail when input is not seekable and lazy=True
...
the SFNTReader expects the input file to be seekable, and it already rewinds the file with file.seek(0) to get to the sfnt table directory. Thus, if TTFont is loaded with an unseekable file object and lazy=True, we raise a TTLibError requiring one to either pass a seekable input file, or to not set lazy=True (in which case the input is loaded in a seekable BytesIO)
Fixes https://github.com/fonttools/fonttools/issues/3052
2023-03-21 18:15:01 +00:00
Cosimo Lupo
43e2108f93
Bump version: 4.39.2 → 4.39.3.dev0
2023-03-16 19:08:18 +00:00
Cosimo Lupo
d64a26f7ef
Release 4.39.2
2023-03-16 19:08:17 +00:00
Cosimo Lupo
cf4a24182e
[varLib] don't skip buildVFStatTable from DSv5 with 'STAT' info
...
Fixes https://github.com/fonttools/fonttools/issues/3045
2023-03-16 18:29:22 +00:00
Cosimo Lupo
1216596825
Bump version: 4.39.1 → 4.39.2.dev0
2023-03-16 13:01:32 +00:00
Cosimo Lupo
199e2c2c6a
Release 4.39.1
2023-03-16 13:01:31 +00:00
Cosimo Lupo
5abdd83318
Merge pull request #3043 from fonttools/fealib-more-avar
...
Apply `avar` also to variable locations
2023-03-16 12:35:51 +00:00