921 Commits

Author SHA1 Message Date
Behdad Esfahbod
28fc49824a Minor 2013-09-18 19:01:16 -04:00
Behdad Esfahbod
8413c108d2 Move sstruct under fontTools.misc
Our footprint in the Python module namespace is all under
fontTools now.  User code importing sstruct should be updated
to say "from fontTools.misc import sstruct".
2013-09-17 16:59:39 -04:00
Behdad Esfahbod
f65033e277 Move xmlWriter into fontTools.misc
Trying to cleanup our footprint in the Python namespace.
2013-09-17 16:41:32 -04:00
Behdad Esfahbod
0ec17d96eb [subset] NameError: global name 'rec' is not defined (#10)
https://github.com/behdad/fonttools/issues/10
2013-09-15 18:30:41 -04:00
Behdad Esfahbod
21582e9f6c [subset] Minor TODO items 2013-09-12 16:47:52 -04:00
Behdad Esfahbod
1c50507492 Merge pull request #9 from khaledhosny/master
Letovers from pyftfontview → pyftinspect rename
2013-09-12 09:32:25 -07:00
Khaled Hosny
0e37f89e70 Letovers from pyftfontview → pyftinspect rename
Fixes “setup.py install”.
2013-09-12 11:13:39 +02:00
Behdad Esfahbod
9953685818 [subset] Fix CFF hint stripping
Stupid mistake.  Seems to work now.
2013-09-12 00:23:11 -04:00
Behdad Esfahbod
010c5f9136 [subset] Minor verbose output improvement 2013-09-10 20:54:46 -04:00
Behdad Esfahbod
285d7b81d3 [subset] Fixup CFF hint stripping
Two things:

1. Put back glyph width after stripping hints,

2. Ignore what I believe is broken fonts.

I still see glyph width messup.  Debugging.
2013-09-10 20:30:47 -04:00
Behdad Esfahbod
2be33d9383 [subset] Allow specifying '*' to choose all glyphs
Useful for testing if nothing else.
2013-09-10 19:28:59 -04:00
Behdad Esfahbod
84763140a0 [subset] Adjust state transition after hintmask 2013-09-10 19:00:48 -04:00
Behdad Esfahbod
e06220767f [subset] Drop hints from CFF if not needed
It's a tricky algorithm, but I think I got the design right.
Bugs optional...
2013-09-10 18:37:54 -04:00
Behdad Esfahbod
cebcf17ba7 Rename pyftfontview to pyftinspect
Makes more sense.
2013-09-06 18:23:13 -04:00
Behdad Esfahbod
fbb9fc1b47 [subset] Remove _NonrecursingT2Decompiler
First, it was wrong because not recursing has implications in hintmasks.

Second, it wasn't needed, because all _used subroutines were already
decompiled anyway.

Fixes this test:

$ pyftsubset SemplicitaPro-Light.otf three
2013-09-05 19:01:39 -04:00
Behdad Esfahbod
9316a90e32 Fixup from numpy removal 2013-09-04 13:50:38 -04:00
Behdad Esfahbod
2058dcfb68 More GlyphCoordinates fixup
I'm sure it's correct this time, though I couldn't reproduce the latest
issue Dave was hitting.
2013-09-04 10:49:21 -04:00
Behdad Esfahbod
e9ea5a0a10 Really fix GlyphCoordinates this time
Argh.  I should stop committing without proper time to test first.

https://github.com/behdad/fonttools/issues/4
2013-09-04 10:39:51 -04:00
Behdad Esfahbod
c195a6b6bd Fixup import
https://github.com/behdad/fonttools/issues/6
2013-09-04 10:35:10 -04:00
Behdad Esfahbod
71d76fa1b8 Fix GlyphCoordinates
It's embarrassing that I failed to test ttx completely.

https://github.com/behdad/fonttools/issues/4
2013-09-04 10:14:44 -04:00
Behdad Esfahbod
583ce6356d Minor 2013-09-04 09:56:51 -04:00
Behdad Esfahbod
1830541975 Merge pull request #2 from behnam/master
fontView: Set column titles and disable sorting
2013-09-04 06:55:19 -07:00
Behnam Esfahbod
f7e0c6719a Show the length of tables in bytes, like `ttx -l'
But not formatting the numbers, as we don't have any locale set
2013-09-03 21:58:26 -07:00
Behnam Esfahbod
31547e0e7b Handle fontTools.ttLib.TTLibError errors 2013-09-03 21:00:06 -07:00
Behnam Esfahbod
1a281ee532 fontView: Use relative imports and shorter namespaces 2013-09-03 20:56:24 -07:00
Behnam Esfahbod
25fc268acb fontView: Set column titles and disable sorting
Also handle some KeyError exceptions
2013-09-03 20:27:14 -07:00
Behdad Esfahbod
ac10d81ac8 Fix misc pychecker warnings 2013-09-03 18:31:59 -04:00
Behdad Esfahbod
22849901ac [fontView] Fix glyph expanding 2013-09-03 18:26:29 -04:00
Behdad Esfahbod
7adbdd6242 Fix Subsetting CFFs without subroutines
https://github.com/behdad/fonttools/issues/1

Based on patch from Jens Kutilek.
2013-09-03 16:23:27 -04:00
Behdad Esfahbod
cbcaccf2f8 [subset] Fixup previous commits for fonts that do have FDSelect
Oops!
2013-08-30 16:21:38 -04:00
Behdad Esfahbod
83f1f5c438 [subset] Fix CFF subsetting of fonts with no FDSelectors 2013-08-30 16:20:08 -04:00
Behdad Esfahbod
ee5e163149 [setup.py] Add new tools 2013-08-29 18:53:38 -04:00
Behdad Esfahbod
4d1541a66b [setup.py] Remove numpy 2013-08-29 18:50:24 -04:00
Behdad Esfahbod
0864e87d88 Remove closure-gsub-text.py
It's a nice example, but not useful enough to be in tree.
May resurrect it later.
2013-08-29 18:44:59 -04:00
Behdad Esfahbod
b69400fe60 Merge pyotlss, rename it to pyftsubset
Adds module fontTools.subset
2013-08-29 18:43:56 -04:00
Behdad Esfahbod
1158118857 Merge pyfontview, rename it to pyftfontview
Adds module fontTools.fontView
2013-08-29 18:36:38 -04:00
Behdad Esfahbod
852e8a50c8 Add TODO items 2013-08-29 18:19:22 -04:00
Behdad Esfahbod
50f83ef3dc Don't drop empty CFF table 2013-08-29 18:18:17 -04:00
Behdad Esfahbod
b69b6718b2 Don't drop empty 'glyf' table 2013-08-29 18:17:31 -04:00
Behdad Esfahbod
2d82c32e64 Drop outline for gid0 / .notdef glyph 2013-08-29 18:02:48 -04:00
Behdad Esfahbod
04f3a1939a Don't include gid1, gid2, gid3 by default
Those "recommendations" are ancient.  Only include gid0 by default.
Two new options: --no-notdef-glyph and --recommended-glyphs.
2013-08-29 16:56:55 -04:00
Behdad Esfahbod
03d78da72e Turn canonical-order off by default
It's just a recommendation after all.
2013-08-29 16:42:00 -04:00
Behdad Esfahbod
562400ea10 Update table list for SVG 2013-08-29 16:15:14 -04:00
Behdad Esfahbod
ddcca79308 Add 'SVG ' table implementation from Read Roberts (Adobe) 2013-08-28 17:25:16 -04:00
Behdad Esfahbod
a17743fe94 Also drop SVG color-glyph table 2013-08-28 17:14:53 -04:00
Behdad Esfahbod
c4af3964fb Revert "Make GlyphOrder object iterable"
This reverts commit e4a670cc7da93d3a12ba23d8cfefdeb0ec7be01f.

As Read Roberts wrote to me:

"you changed the definition of the GlyphOrder class to take a ttFont as
the argument for the __init__ function, rather than just the
tag, as before, I think so that the glyph order is defined when the
table is instantiated, rather than only when to/fromXML() is called

The problem with this is that the ttx.py compile function passes in a tag,
so compiling a font from an ttx file fails here, and in
xmlImport.startElementHandler(). I discovered this because a number of my
scripts use the same logic. What is the reason for this change? I have no
problem with changing the several FDK scripts that build a new TTF font
from scratch, to pass in the ttFont rather than a tag, but wanted to be
sure that this was necessary. The main issues are that when reading in an
entire TTX file, the table has to be instantiated before the data can be
provided, and the GylphOrder initialization is then different than  for
all the other tables"""

As such revert.  This means that GlyphOrder is again non-iterable.  Will
have to fix in some other way later.
2013-08-28 17:12:12 -04:00
Behdad Esfahbod
39a39ac00a Use module __all__ instead of manually cleaning the module space 2013-08-22 18:10:17 -04:00
Behdad Esfahbod
68819fda9a Remove obsolete code 2013-08-22 15:35:00 -04:00
Behdad Esfahbod
4b3df49b5b Fix XML encoding
1. Write out using utf-8 encoding.  Shouldn't matter really since
we don't generate non-ASCII data,

2. When parsing, DON'T override the file's encoding!
2013-08-20 15:29:19 -04:00
Behdad Esfahbod
348f858b6f Fix recursion glyph filtering again
When writing this code I argued that no two recursion records
in the same rule can both apply to index=0.  Well, cibu found
that NotoSansBengali-Regular.ttf does exactly that...

Test with "য্রী".
2013-08-20 11:50:04 -04:00