This removes our internal copy of Unicode names database!
Adds new API fontTools.unicode.setUnicodeData() that can be
called with a filename or file object corresponding to a
UnicodeData.txt file, which will consequently used for Unicode
character name mapping. This is useful for using newer Unicode
database than the one that comes with the builtin Python module.
This also changes behavior such that control characters, Hangul
syllables, Han chars, etc, get no name with custom
UnicodeData.txt. We may revisit this though.
Filed https://github.com/behdad/fonttools/issues/82 to add
option to ttx to pass custom UnicodeData.txt.
Fixes https://github.com/behdad/fonttools/issues/81
Fonts typically have multiple consecutive PUSHB / PUSHW
operators. Merge them in the disassembled output.
This, for now, generates worse assmebly because all PUSHB's
grouped with PUSHW's now generate as PUSHW. Followup fix
will address that.
Previously fonttools was choosing between the optimal opcode
from PUSHB, NPUSHB, PUSHW, and NPUSHW. We now respect
whatever was requested and err if the format doesn't support
the data.
Morevoer, if the number of numbers to push is more than 255,
we add multiple push instructions to push all the numbers.
Finally, add a new pseudo-opcode "PUSH" that automatically
chooses the best format.
This, by itself, reduces roundtrip noise by not optimizing
the bytecode as it was before. In a followup commit I'll
change the bytecode disassembler to always produce PUSH
in the textual instructions instead of the four variants.
That way, we get both the optimization during assembling,
and reduced noise in XML.
Part of https://github.com/behdad/fonttools/issues/73
The format values for those are automatically handled in
postRead/preWrite to choose optimal format. As such, don't write them
in XML. Reduces noise.
Part of https://github.com/behdad/fonttools/issues/73
Lazy loading has implications on how people use objects.
So, by default, don't load lazily. This only affects
GSUB/GDEF/GPOS/etc and is closer to what fonttools used
to do traditionally.
Turn lazy loading on in subset and inspect.