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
# 1) Switched to using Numeric module arrays rather than array modules arrays,
# because of a memory leak in array.array when handling elements > 1 byte.
# 2) speed optimizations:
# - For loops are collapsed when possible
# - the data for a subtable is parsed only if a mapping value is requested
# - if two subtables share the same data offset, then on
decompilation, they will
# share the same cmap dict, and not get decompiled twice. Same for compiling.
# - as before, two tables with the same contents will get compiled to a single
# data block in the font.
# 3) added (self.platformID, self.platEncID) == (3, 10) to the list
of subtables that
# get Unicode comments.
# 4) allow item reference by GID as well as by name. I did this when
experimenting to see if using GID references only would speed the
compile; it didn't but it seemed useful enough to leave in.
# 5) Fixed compile to/from XML: for cmap type unknown ( aka cmap
format 10, in practice.)
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@510 4cde692c-a291-49d1-8350-778aa11640f8
# 1) speed optimizations
# 2) fixed parseCharset0 to support CFF-CID fonts.
# 3) fixed CharsetConverter.read to work a font that actually has one
of the pre-canned encodings.
# This fixes a stack dump.
# I did not try to support using these encodings when writing a font,
# as the cases will be so rare as to not justify the processing
overhead for all other fonts.
(Read: I took out some of your loop optimizations since I believe they
made the code a lot less clear. I also have my doubts whether they were
actually performance improvements.)
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@509 4cde692c-a291-49d1-8350-778aa11640f8
There are also some new files, for SING glyphlet support, that you
may or may not want to add, because they are not in the OpenType spec.
M_E_T_A_.py # SING glyphlet meta data table. see
'http://partners.adobe.com/public/developer/opentype/gdk/topic.html"
S_I_N_G_.py # SING glyphlet basic info. See same web site as for META
data table.
G_M_A_P_.py # Summary of sing glyphlet info that has been stuck into
a parent font. Not documented anywhere yet.
G_P_K_G_.py # Opaque wrapper for SING glyphlet info; travels with
application document. Is also stuck into augmented parent font. Not
documented anywhere yet
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@507 4cde692c-a291-49d1-8350-778aa11640f8
the native struct alignment, which is different on OSX. Changed all
struct calls to explicitly use big endian (ready for x86...), which
also fixes the alignment issue.
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@500 4cde692c-a291-49d1-8350-778aa11640f8
- in T2 charstrings, a byte code of 255 is followed by a 16.16 fixed
point number, not a 4-byte int as in T1. Noted by rroberts.
- some integers were not correctly encoded in the T1 compiler.
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@485 4cde692c-a291-49d1-8350-778aa11640f8
- 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
Deal with empty Coverage table: it will be None so won't have a .glyphs
attribute.
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@471 4cde692c-a291-49d1-8350-778aa11640f8
- Only output unicode names as comments if we're in fact dealing with
a unicode cmap subtable (and this is -- in theory -- independent of
cmap format)
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@468 4cde692c-a291-49d1-8350-778aa11640f8
most appropriate here. There may be a use for the "big" AGL, but that will
have to become a new module.
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@466 4cde692c-a291-49d1-8350-778aa11640f8
Instead of using a list internally, I now use a dict, since the unicode
mapping is quite sparse (lots of unused slots).
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@465 4cde692c-a291-49d1-8350-778aa11640f8
- two minor typos
- changed copyright year in LICENSE (and it's 2004 now...)
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@464 4cde692c-a291-49d1-8350-778aa11640f8
- better exception msg in loca table
- renamed "version" to "language" in cmap
- made cmap 12 work (untested by me)
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@463 4cde692c-a291-49d1-8350-778aa11640f8