46 Commits

Author SHA1 Message Date
Sascha Brawer
af944354d2 Emit XML even for names whose platform encoding is unsupported
When dumping the Macintosh Skia font to XML, the TTX tool crashed
with a Python exception. After this change, the font can be dumped
fine. This was caused by a name record with platformID=1 (Macintosh)
and platEncID=2 (Traditional Chinese).
2015-04-15 23:01:00 -07:00
Behdad Esfahbod
81750849fc Allow setting name entries to Unicode strings
Just convert to bytes if needed when compiling table.
2015-04-07 17:58:11 -07:00
Behdad Esfahbod
e3f531783a Don't modify name table object when compiling 2015-04-07 17:56:51 -07:00
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
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
77ccf45eb0 Add NameRecord.isUnicode() 2014-03-12 12:32:27 -07:00
Behdad Esfahbod
1ae29591ef from __future__ import absolute_import
Such that our Python 2 is closer to Python 3.

Part of https://github.com/behdad/fonttools/issues/77
2014-01-14 15:07:50 +08:00
Behdad Esfahbod
1a4f96b787 Remove total_ordering
Upon studying further, we don't need it.  Since we only expect
comparing objects of the same type, just having __lt__ is enough.
2013-12-07 12:17:32 -05:00
Behdad Esfahbod
273a90074a Return NotImplemented 2013-12-07 03:40:44 -05:00
Behdad Esfahbod
56da965344 Add @total_ordering to classes with __lt__ 2013-12-07 03:35:16 -05:00
Behdad Esfahbod
e388db566b py23 Use new-style classes
Such that we get the same semantics in both Python 2 and 3.
2013-11-28 18:53:30 -05:00
Behdad Esfahbod
1edfe57656 Strip name table records before writing to XML
They will be stripped reading back anyone, so any surrounding
whitespace will be lost.  At least this way diffs of ttx files
are cleaner.
2013-11-28 18:53:30 -05:00
Behdad Esfahbod
ca80208a15 Revert XML name table format changes
For the sake of separating py23 effort from feature changes,
I'm reverting the name table XML dump format back to what it
was.  I will clean it up after py23 is merged.
2013-11-28 17:33:23 -05:00
Behdad Esfahbod
6962f0cfb2 py23 XML encoding fixes
Name table entries that are Unicode are written out as native Unicode
now text in the XML now.
2013-11-28 17:32:43 -05:00
Behdad Esfahbod
5f6418d9e1 py23 Turn Unicode XML parsing on; more bytes fixes 2013-11-28 17:32:43 -05:00
Behdad Esfahbod
18316aa769 ps23 More bytes fixes. All ''join()'s fixed 2013-11-28 17:32:43 -05:00
Behdad Esfahbod
821572c9a9 py23 Add bytesjoin() 2013-11-28 17:32:43 -05:00
Behdad Esfahbod
b7fd2e1913 py23 Remove uses of __cmp__ and cmp() 2013-11-28 17:32:42 -05:00
Behdad Esfahbod
32c10eecff py23 from __future__ import division and adjust divisions 2013-11-28 17:32:42 -05:00
Behdad Esfahbod
30e691edd0 py23 from __future__ import print_function 2013-11-27 17:27:45 -05:00
Behdad Esfahbod
7ed91eca1e py23 import in all nontrivial source files and unused import cleanup 2013-11-27 15:25:00 -05:00
Behdad Esfahbod
9005774c10 2to3 --fix=unicode equivalents
Remove usage of unicode module.  The rest are mostly false
positives.

Remains u'' in macUtils.py and u"" and unichr in M_E_T_A_.py.
2013-11-27 14:01:45 -05:00
Behdad Esfahbod
14fb031125 Remove most uses of module string 2013-11-27 14:01:44 -05:00
Behdad Esfahbod
b774f9f684 2to3 --fix=types manual additions
Don't know why the tool didn't catch these.
2013-11-27 14:01:44 -05:00
Behdad Esfahbod
3ec6a25823 2to3 --fix=print with manual fixup 2013-11-27 04:57:33 -05:00
Behdad Esfahbod
ac1b435946 2to3 --fix=idioms 2013-11-27 04:15:34 -05:00
Behdad Esfahbod
3a9fd30180 2to3 equivalent to --fix=tuple_params
I hope I got this all right...
2013-11-27 03:30:21 -05:00
Behdad Esfahbod
180ace6a5f 2to3 --fix=ne 2013-11-27 02:40:30 -05:00
Behdad Esfahbod
2b06aaa2a6 2to3 --fix=import 2013-11-27 02:34:11 -05:00
Behdad Esfahbod
bc5e1cb195 2to3 --fix=has_key 2013-11-27 02:33:03 -05:00
Behdad Esfahbod
94118dcea4 Fix cmap subtable sort order
https://github.com/behdad/fonttools/issues/22
2013-10-28 12:16:41 +01:00
Behdad Esfahbod
0ba7aa7ab5 Make __cmp__() functions stable 2013-10-28 12:07:15 +01: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
96b321c8ae Fix comparison to arbitrary objects 2013-08-19 14:17:11 -04:00
jvr
980fae897a bug #784690: simple workaround for buggy name table
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@469 4cde692c-a291-49d1-8350-778aa11640f8
2004-09-25 09:12:00 +00:00
jvr
a87cde236e second try to work around bogus stringOffset value
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@389 4cde692c-a291-49d1-8350-778aa11640f8
2003-01-25 18:20:22 +00:00
jvr
b71d0f46f6 renamed stringoffset to stringOffset as per spec
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@388 4cde692c-a291-49d1-8350-778aa11640f8
2003-01-25 11:15:42 +00:00
jvr
aabca6d793 gracefully handle bogus stringOffset values (thanks to Anthony Fok)
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@387 4cde692c-a291-49d1-8350-778aa11640f8
2003-01-25 11:14:59 +00:00
jvr
3507eeb3d8 don't barf on empty name tables (!)
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@349 4cde692c-a291-49d1-8350-778aa11640f8
2002-09-12 19:07:39 +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
6d925f5b9a workaround for odd-length unicode strings (!)
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@126 4cde692c-a291-49d1-8350-778aa11640f8
2000-10-23 14:36:20 +00:00
Just
d29f289911 - some method name changes
- check for 3,0 platform/encoding wide strings


git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@92 4cde692c-a291-49d1-8350-778aa11640f8
2000-03-14 23:03:53 +00:00
Just
7c0fb31738 added an assert, plus some (commented out) test code for bad unicode strings
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@76 4cde692c-a291-49d1-8350-778aa11640f8
2000-02-01 15:32:17 +00:00
Just
b0e2817fad Treat platformID=3, platEncID=0 also as Unicode strings.
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@41 4cde692c-a291-49d1-8350-778aa11640f8
1999-12-29 13:07:22 +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