Behdad Esfahbod
4458f363e3
[ttx] Write out name table entries as Unicode when possible
...
https://github.com/behdad/fonttools/issues/54
There's a new attribute named unicode that can choose whether the
text in the XML entry is to be interpretted as Unicode, or as the
target encoding.
2015-04-07 17:52:51 -07:00
Behdad Esfahbod
98aee5f11a
Add getEncoding() to name table entries
2015-04-03 10:07:57 -07:00
Behdad Esfahbod
24264cb7f8
[subset] Fix chaos handling to be more inclusive
...
If a contextual lookup recurses twice on the same index, that index
most be marked chaotic for the second recursion.
Also, when a non-1-to-1 recursion happens, only mark glyph locations
after current to be chaotic, not everything.
I believe this fixes a bug that before we were not inclusive enough.
Now we might have introduced more false positives, but we are at least
correct.
2015-04-01 18:51:52 -07:00
Behdad Esfahbod
2a7007df7b
[subset] Indent
2015-04-01 18:22:51 -07:00
Behdad Esfahbod
9ab1d2f968
[subset] Minor
2015-04-01 18:18:56 -07:00
Behdad Esfahbod
13d48da3a9
[subset] Avoid duplicate recursions in closure_glyphs() for contextuals
...
Speeds up NotoNastaliqUrdu from 50s to 1.8s.
2015-04-01 18:15:01 -07:00
Behdad Esfahbod
4a3dcd589e
[subset] Whitespace
2015-04-01 17:51:54 -07:00
Behdad Esfahbod
22ffbba4b7
[subset] Further narrow down cur_glyphs in recursive contextuals
...
Improves NotoNastaliqDraft closure_glyphs() time from 60s to 50s.
This was originally introduced in 1d4fa13b4. I'm fairly confident
new code is correct.
2015-04-01 17:45:55 -07:00
Behdad Esfahbod
c4d0400004
[subset] Speed up closure_glyphs() a bit
...
Was taking nine minutes on NotoNastaliqUrdu font.
With these changes it takes only(1) one minute now.
More coming.
2015-04-01 17:34:38 -07:00
Cosimo Lupo
4c4c65fac0
[sfnt] fix WOFF checksum adjustment calculation
...
Use 'origLength' and 'origChecksum', instead of 'length' and
'checksum', to calculate the checksum adjustment of WOFF.
2015-04-01 10:25:06 +01:00
Behdad Esfahbod
0bf67b50bd
[glyf] Implement optimal glyph outline packing; disabled by default
...
Dynamic-Programming-based algorithm. Previously we had a greedy
algorithm only.
Unfortunately the savings are truly negligible. In the order of ~20
bytes for each of the Roboto faces, less so for Noto fonts. Even on
a 20MB font, it produced less than 100 bytes saving compared to our
greedy packing. Either I made a huge mistake, or this is so not worth
it. Anyway, the code is there, but disabled.
2015-03-30 16:47:49 -07:00
Behdad Esfahbod
4e616d2f7f
Accept MS Symbol cmap tables as Unicode-compatible
...
Apparently these days these tables are used to encode symbols in
PUA, so they are still Unicode-compatible...
This follows a similar change in fontconfig.
2015-03-30 16:47:48 -07:00
Behdad Esfahbod
cd1bc34f89
Simplify glyf packing a bit more
2015-03-30 16:47:48 -07:00
Behdad Esfahbod
c72058623b
Minor
2015-03-30 16:47:48 -07:00
Behdad Esfahbod
630284e31a
Minor
2015-03-30 16:47:48 -07:00
Behdad Esfahbod
0679a7691d
Move glyf coordinate delta packing into new function
2015-03-30 16:47:47 -07:00
Behdad Esfahbod
a40b20d0e0
Minor shuffling of glyf compression code
2015-03-30 16:47:47 -07:00
Behdad Esfahbod
a9632a376b
Merge pull request #219 from anthrotype/bytesjoin
...
[_n_a_m_e] fix "can't concat bytes to str" error in python 3
2015-03-20 12:42:53 -07:00
Cosimo Lupo
743e990b5c
[_n_a_m_e] fix "can't concat bytes to str" error in py3
2015-03-19 18:11:19 +00:00
Behdad Esfahbod
c511745b2e
Work around a Jython bug:
...
>>> import array; array.array("f", array.array("b", [1,2,3]))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only extend with array of same kind
>>> import array; array.array("f", list(array.array("b", [1,2,3])))
array('f', [1.0, 2.0, 3.0])
2015-03-17 15:32:57 -07:00
Behdad Esfahbod
b9ac90a8f9
[GX] Add 'fvar' table support
...
I might change the table format in the future, but it's functional now.
2015-03-11 15:29:35 -07:00
Behdad Esfahbod
61cda14c1b
Actually add _f_e_a_t.py
...
Ouch!
2015-03-11 12:31:44 -07:00
Behdad Esfahbod
467a0369e4
Fix test on Python 2.6
2015-03-03 16:05:25 -08:00
Behdad Esfahbod
1296c7457e
Make tests pass with Python3
...
In python3, str(float) is noisy. Always format floats using "%g".
2015-03-03 15:54:37 -08:00
Behdad Esfahbod
e02b9ea05b
Fix tests to return failures
2015-03-03 10:47:40 -08:00
Behdad Esfahbod
f192400039
Fix checks; add run-tests.sh
2015-03-03 09:57:41 -08:00
Behdad Esfahbod
612c70dada
[SVG] Support gzip-compressed SVG tables
...
Set font['SVG '].compressed=True to enable. Here's a snippet to convert a
WOFF-compressed SVG+OpenType font to a compressed SVG+OpenType non-WOFF font:
from fontTools.ttLib import TTFont
font = TTFont("NotoColorEmojiSvg.woff")
font['SVG '].compressed=True
font.flavor=None
font.save("NotoColorEmojiSvgCompressed.ttf")
2015-03-02 15:41:57 -08:00
Behdad Esfahbod
b1f46be65c
Minor
2015-03-02 15:22:39 -08:00
Behdad Esfahbod
9fc8ac0559
Whitespace
2015-03-02 13:05:29 -08:00
Behdad Esfahbod
5a7ec608c8
Fix SVG doc length calculations
...
Patch from Doug Felt.
2015-02-23 14:03:06 -08:00
vitalyvolkov
3042fcf989
Handle exception IndexError when accessing out of range glyphs
2015-02-02 13:47:55 +02:00
Behdad Esfahbod
8af5c69ea0
Unbreak backward compatibility re _h_e_a_d.mac_epoch_diff
...
Fixes https://github.com/behdad/fonttools/issues/210
2015-01-22 11:21:43 -08:00
Behdad Esfahbod
21af87536f
[cmap] Split last segment of a format 4 efficiently
...
Fixes https://github.com/behdad/fonttools/issues/189
2015-01-22 00:10:01 -08:00
Behdad Esfahbod
0d5d12e02a
Adjust 'feat' table format
...
As discussed here:
730bedd3d1
2015-01-21 15:46:30 -08:00
Behdad Esfahbod
4362cb49f3
In getGlyphSet(), pull glyph advance from hmtx even for CFF fonts
...
That's the right thing to do.
Also fixes this:
https://github.com/robofab-developers/robofab/issues/28
2015-01-08 12:53:58 -08:00
Behdad Esfahbod
8ef5adc4af
Move draw() implementation to a better place
2015-01-08 12:28:42 -08:00
schriftgestalt
adfe7f293a
add some missing return values
2015-01-08 09:46:13 -08:00
Behdad Esfahbod
a0dfcb496e
Align instruction comments at tab stop
...
Makes them much more readable.
2015-01-05 17:49:38 -08:00
schriftgestalt
5d66d59a1f
Add comments with names of TrueType instruction to assembly
2015-01-05 17:45:09 -08:00
Sam Fishman
de66a6466c
[subset] Add --desubroutinize
...
This seems to both make the font smaller for small subsets, and works
around a bug in our CFF hint stripping logic.
So, if you are passing --no-hinting, do pass --desubroutinize.
2015-01-05 15:53:56 -08:00
Olivier Berten (selapa.net)
ff84e2dadd
Regard very low datetimes as unix timestamps
2015-01-03 23:04:10 +01:00
Behdad Esfahbod
8a7a20c4b1
Fix indent
2015-01-02 13:14:26 -08:00
Behdad Esfahbod
b056318ca9
Ignore top four bytes of head table timestamps
...
Warn instead.
2015-01-02 13:08:57 -08:00
Behdad Esfahbod
15f2bb1e2f
Fixup previous commit
2015-01-02 13:02:36 -08:00
Behdad Esfahbod
ee425b4350
Adjust for Python 3.3 change in gmtime() exception type
...
https://github.com/behdad/fonttools/issues/99#issuecomment-66776810
Fixes https://github.com/behdad/fonttools/issues/99
2015-01-02 12:54:19 -08:00
Behdad Esfahbod
f0200def0c
Refactor timestamp code into misc.timeTools
2015-01-02 12:53:16 -08:00
Behdad Esfahbod
d86755bd45
Really fix fixedToFloat() this time
...
And simplify. Fixes regression introduced two commits ago.
Fixes https://github.com/behdad/fonttools/issues/205
2014-12-29 11:56:39 -08:00
Behdad Esfahbod
db3b2817bf
Add more tests to fixedToFloat(), showing previous commit is broken
...
Fix coming.
2014-12-29 11:30:48 -08:00
Behdad Esfahbod
97a07ce536
Improve fixedtoFloat()
...
Fixes https://github.com/behdad/fonttools/issues/205
2014-12-28 23:52:46 -08:00
Behdad Esfahbod
4447a76c33
[subset] If DSIG is to be retained, drop all signatures
...
Now DSIG can be retained by passing --drop-tables-=DSIG.
The embedded signatures will be dropped but empty table
retained.
Fixes https://github.com/behdad/fonttools/issues/145
2014-12-09 19:02:39 -08:00