99 Commits

Author SHA1 Message Date
jvr
2545f16b54 Make a hidden feature accessible: optionally ignore decompilation errors,
falling back to DefaultTable, retaining the binary data. It's a bit
dangerous to enable this by default, since it can lead to hiding other
errors or bugs (in the font or fonttools itself).


git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@524 4cde692c-a291-49d1-8350-778aa11640f8
2008-03-01 09:30:17 +00:00
jvr
823f8cd15f Misc patches from rroberts:
fontTools/ttx.py
  # support virtual GIDs, support handling some GSUB offset overflows.

fontTools/ttlib/__init__.py
# 1) make getReverseGlyphMap  a public function; I find a reverse map
to often be useful
# 2) support virtual glyphs, e.g. references to GID's that are not in the font.
# Added the TTFont argument allowVID (default 0) to turn this off and on;
# added the arg requireReal ( default 0) so as to get the obvious
default behaviour when
# allowVID is 0 or 1, but to allow requiring a true GID when allowVID is 1.

fontTools/ttlib/tables/otBase.py
fontTools/ttlib/tables/otConverters.py
fontTools/ttlib/tables/otData.py
fontTools/ttlib/tables/otTables.py
# 1) speed optimization
# - collapse for loops
# - do not decompile extension lookups until a record is requested
from within the lookup.
# 2) handling offset overflows
# 3) support of extension lookups
# 4) Fixed FetauresParam converter class def so as to survive a font
that has this offset non-NULL.
# This fixes a stack dump.
# The data will now just get ignored


git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@511 4cde692c-a291-49d1-8350-778aa11640f8
2006-10-21 14:12:38 +00:00
jvr
2e4cc02ca3 BasePen should not fail if a base glyph does not exist in the glyph set; added get() method to _TTGlyphSet class
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@497 4cde692c-a291-49d1-8350-778aa11640f8
2005-03-08 09:50:56 +00:00
jvr
79c1316d65 fixed buglet in GlyphSet support code
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@481 4cde692c-a291-49d1-8350-778aa11640f8
2005-01-24 10:06:45 +00:00
jvr
28ae196229 Refactored and enhanced table order support:
- Rewrote sorting function, it was really quite buggy.
- Added reorderFontTables() functions, which reorders the
  tables in a font at the sfnt level.
- TTFont.save() will now by default rewrite the font in the
  optimized order. This is done through a temp file since
  our dependency checking logic gets in the way of writing
  the tables in a predefined order directly (if table A depends
  on B, table B will always be compiled and written first, so
  this prevents A from showing up in the file before B).

sfnt.py:
- removed closeStream option from SFNTWriter.close(); it's better
  done by the caller (TTFont).


git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@475 4cde692c-a291-49d1-8350-778aa11640f8
2004-11-16 10:37:59 +00:00
jvr
a4f6688ebe tweak & bugfix
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@474 4cde692c-a291-49d1-8350-778aa11640f8
2004-11-16 09:12:30 +00:00
jvr
1cff4cb190 workaround for buggy 2.2 mac support
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@436 4cde692c-a291-49d1-8350-778aa11640f8
2003-08-28 18:23:43 +00:00
jvr
d028b7be3c Set .width in _TTGlyph.__init__ after all: these are just this wrapper
objects, _TTGlyphSet doesn't cache them, so setting .width in .draw()
is confusing to say the least.


git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@430 4cde692c-a291-49d1-8350-778aa11640f8
2003-08-26 19:00:38 +00:00
jvr
6f8f5ded55 fixed AttributeError in _TTGlyphSet.keys()
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@428 4cde692c-a291-49d1-8350-778aa11640f8
2003-08-26 18:19:11 +00:00
jvr
1c9917bcf4 comment typo fix, reflow
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@422 4cde692c-a291-49d1-8350-778aa11640f8
2003-08-25 13:20:38 +00:00
jvr
8df8f6385e TTFont now has a getGlyphSet() method, which will return a generic
GlyphSet. A GlyphSet is simply a dict-like object mapping glyph names
to glyphs. The glyphs in a GlyphSet have a .draw(pen) method and a
.width attribute. This provides a generic interface for drawing glyphs
or extracting outlines, and works both for CFF-based fonts and TT fonts.

See also fontTools.pens.basePen for a description of what makes a Pen
a Pen.


git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@420 4cde692c-a291-49d1-8350-778aa11640f8
2003-08-25 13:15:50 +00:00
jvr
700df03131 - attempted to sort tables in order recommended by spec.
TODO: need to fix table dependency order to complete this.
  (Read: would you mind posting a bug report regarding this?)


git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@406 4cde692c-a291-49d1-8350-778aa11640f8
2003-08-22 19:44:08 +00:00
jvr
0bb3ba5222 some modernizations
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@401 4cde692c-a291-49d1-8350-778aa11640f8
2003-08-22 18:52:22 +00:00
jvr
6ab979caca some (modified) progress bar support
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@294 4cde692c-a291-49d1-8350-778aa11640f8
2002-07-23 16:44:25 +00:00
jvr
9da0f12dec make dynamic table import work when importing from a zip file (for py2exe)
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@277 4cde692c-a291-49d1-8350-778aa11640f8
2002-07-11 18:17:32 +00:00
jvr
d57c4346e5 It still wasn't right; I think the glyph order mess is now sufficiently cleaned up; at least compiling the result of ttdump -x glyf works again.
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@265 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-25 15:28:48 +00:00
jvr
22f068929c make sure the glyph order is loaded when importing XML as the TTX file may not contain it (ttdump -t/ttcompile -i).
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@264 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-25 14:56:29 +00:00
jvr
e5ae28e842 whoops, the new GlyphOrder table stuff broke ttdump -s
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@263 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-25 08:22:22 +00:00
jvr
4e5af60930 CFF/T2 <-> XML roundtripping has begun!
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@254 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-24 09:58:04 +00:00
jvr
0011bb6910 big change: the glyph order is now dumped as a separate table and not as part of glyf (which didn't make much sense to begin with, but can't work at all in the case of CFF...)
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@252 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-23 09:42:45 +00:00
jvr
fe665777ea refactored saveXML() method
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@251 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-22 20:15:10 +00:00
jvr
0ecc433736 ignore tables we don't have upon saving as XML: this is indispensible for batch processing
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@237 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-15 07:50:06 +00:00
jvr
8307fa42cd a whole bunch of renames, purely stylistic
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@226 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-13 16:21:51 +00:00
jvr
0b63b28615 don't get glyph names from CFF it it's a CID-keyed font; invent glyph name on the spot if glyphID is too high (dubious change..).
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@224 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-13 11:26:38 +00:00
jvr
ea9dfa9fb2 renamed several items to use camelCase
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@220 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-12 17:14:50 +00:00
jvr
0f29303474 change how saveXML with splitTable=True works: it no longer creates a directory, and outputs a small file that references the individual table files
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@212 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-11 21:18:12 +00:00
jvr
22dcb9e6f9 a few cosmetic/style changes
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@206 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-10 19:03:34 +00:00
jvr
9f1e14bec9 Work around bootstrapping problem in TTFont._getGlyphNamesFromCmap():
If the cmap parser was the one to cause _getGlyphNamesFromCmap() to be
  called, no unicode cmap was found as it was just starting to get
  loaded. This resulted in different glyph names, depending on when
  the cmap parser was invoked.
Also added a bunch of comment describing what this method does.


git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@204 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-05 11:29:33 +00:00
jvr
cf4b3b3d9b renamed _getTableData() to getTableData(); optimized getGlyphOrder() somewhat.
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@202 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-05 09:48:31 +00:00
jvr
f707463256 added support for deleting tables: del f[tag]
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@201 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-04 22:04:02 +00:00
jvr
d04a3bb4f9 use version from fontTools.__init__.py
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@184 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-02 15:23:25 +00:00
jvr
ca4c45681e Complety revised the XML import code:
- use expat instead of xmlproc
- minor fixes here and there

Fixed bug in hmtx/vmtx code that only occured if all advances were equal.

FontTools now officially requires Python 2.0 or up, due to exapt and unicode.


git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@179 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-01 21:06:11 +00:00
Just
a556f51db5 don't allow duplicate glyph names when building names from cmap/agl
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@129 4cde692c-a291-49d1-8350-778aa11640f8
2001-02-23 21:58:57 +00:00
Just
0f675860ce improved support for writing to (in memory) streams
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@119 4cde692c-a291-49d1-8350-778aa11640f8
2000-10-02 07:51:42 +00:00
Just
c91a95189a minor changes
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@115 4cde692c-a291-49d1-8350-778aa11640f8
2000-08-23 12:31:52 +00:00
Just
509e2874aa disable decompilation exception catching: it causes too many debugging nightmares.
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@82 4cde692c-a291-49d1-8350-778aa11640f8
2000-02-13 16:23:28 +00:00
Just
53602486b4 added support for instruction disassembly in saveXML()
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@73 4cde692c-a291-49d1-8350-778aa11640f8
2000-02-01 15:29:03 +00:00
Just
9682b4198b use ".ttx" extension instead of ".xml". TTX is not the name of the format, not the app...
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@61 4cde692c-a291-49d1-8350-778aa11640f8
2000-01-17 18:58:46 +00:00
Just
ff3499de66 - Added skiptTables argument to TTFont.saveXML(), to support -x option of tt2xml.py
- Fixed typo


git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@52 4cde692c-a291-49d1-8350-778aa11640f8
2000-01-05 20:43:36 +00:00
Just
f8fd4777d2 Added code to fall back to the DefaultTable (and therefore to hex XML dumps) when an exception occurs during decompilation.
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@44 4cde692c-a291-49d1-8350-778aa11640f8
2000-01-03 23:00:10 +00:00
Just
7dcc91674e - fixed broken agl import
- changed TTFOnt.saveXML + splitTables<>0 behavior: now expects a path to a directory


git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@40 4cde692c-a291-49d1-8350-778aa11640f8
1999-12-29 13:06:08 +00:00
Just
d28479b066 Added optional splitTables argument to TTFont.saveXML(). Set to non-zero, this will cause each table to be dumped to an idividual XML file.
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@36 4cde692c-a291-49d1-8350-778aa11640f8
1999-12-27 19:48:21 +00:00
Just
98d780d766 edited TTFont.__init__ doc string, the recalcBBoxes explanation should now be clearer and more complete.
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@33 4cde692c-a291-49d1-8350-778aa11640f8
1999-12-23 15:16:22 +00:00
Just
3e097c6095 don't recalc a number of things then TTFont().recalcBBoxes is off. This allows us to compact glyphs right after they've been parsed from XML, which should greatly reduce memory usage, and therefore should speedup compiling large fonts.
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@31 4cde692c-a291-49d1-8350-778aa11640f8
1999-12-23 14:44:16 +00:00
Just
869c6f3ffa moved an import statement
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@17 4cde692c-a291-49d1-8350-778aa11640f8
1999-12-18 21:32:40 +00:00
Just
88cb4f33c6 added recalcBBoxes argument to TTFont.__init__()
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@10 4cde692c-a291-49d1-8350-778aa11640f8
1999-12-18 18:06:25 +00:00
Just
8bc8cf850d minor cleanup of some doc strings
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@9 4cde692c-a291-49d1-8350-778aa11640f8
1999-12-17 12:54:19 +00:00
Just
f78bec0357 added __release__ symbol, changed __version__ to $Id$.
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@8 4cde692c-a291-49d1-8350-778aa11640f8
1999-12-17 12:51:21 +00:00
Just
7842e56b97 Created a new library directory called "FreeLib". All OpenSource RFMKII components will reside there, fontTools being the flagship.
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@2 4cde692c-a291-49d1-8350-778aa11640f8
1999-12-16 21:34:53 +00:00