Behdad Esfahbod
3ec06df194
Fix failing tests
2016-09-27 19:53:58 +02:00
ReadRoberts
5b479716bc
Fix bugs in cffLib.py. 1) In the last commit, I added logic to use a CFF predefined charset when possible. This is not allowed In CID fonts. Added a test to NOT do this when font is CD. 2) Added exception handler when reading FontDict XML to skip unknown fields. In previous versions, all the default key/value pairs for the TopDict were (incorrectly) written to FDArray FontDicts. New logic does not do that, but also should not fail when it sees any of these key/value pairs. 3) Changed the expected txt files for some of the subset tests. For the CID example, this meant removing the unnecessary key/value pairs from the FDArray FontDicts. For all, it meant adding the major.minor CFF version fields.
2016-09-27 19:49:41 +02:00
ReadRoberts
99394d90bb
Fix bug in processing charset info. When predefined charset is specified in an OTF CFF ( TopDict.charset < 2),, the charset was always filled with the entire predefined charset, instead of charset[:nGlyphs]. Also added logic to write a predefined charset code instead of a custom charset when that is possible: this was not happening before.
2016-09-27 19:49:41 +02:00
ReadRoberts
edbee6e4cb
Write major/minor fields to XML. Now that we have CFF2, it is worth being explicit about this
2016-09-27 19:49:41 +02:00
ReadRoberts
3063def35b
Fixed writing FDArray FontDict structures for CID-keyed CFF fonts. Old logic was reading/writing using TopDict methods, and items like the CIDFontName and Encoding were getting written to XML, and back into the compiled FontDict data. Fixed by defining a list of operators supported in FontDict objects, which is a subset of the TopDict operators, and referencing these in the FontDict object methods.
2016-09-27 19:49:41 +02:00
ReadRoberts
8dc4edceda
Fix bug in writing an empty INDEX table. This is supposed to contain only the two-bye count field. Code was also writing the final sentinel offset in the offset list, even though there were no items. This is harmless, but adds a couple useless bytes. Also fixed the calculation of the offset size in the CFF header. Again harmless, since this value isn't used anywhere, but makes it harder to compare CFF's built by different tools.
2016-09-27 19:49:41 +02:00
Miguel Sousa
8bf1bd4f30
[cff] fix fetching of fdSelectIndex value
2016-07-06 10:27:02 -06:00
Miguel Sousa
c04a6d922c
[cff] fdSelect array only exists in CID fonts, so test for the presence of fdArray and set the selector value to None otherwise
2016-07-06 04:23:43 -06:00
Cosimo Lupo
6c1c2a44d1
cffLib: use tostr() when getting SID of indexed string (or we end up with duplicates in py3)
...
I noticed this issue while porting compreffor to py3. In my test fonts, the binary
CFF tables as generated with python 2 sometimes were slightly different from the
ones generated with python 3, although the TTX dump was identical!
It turns out, when running in Python 3, cffLib adds extra entries to the
list of CFF indexed strings, because of bytes vs str.
The `IndexedStrings.getSID` method takes an input string 's' and and returns
the SID integer for that string. If it's a new string, it gets appended to the
list, as well as to an internal strings-to-SID mapping, so that the same SID
value is returned for any given string.
The problem with python 3 was that, if the input string was of `bytes` type
instead of `str`, then the test for inclusion (the dict's `__contains__`)
would return False, and as a result the "same" string (e.g. "Regular" and
b"Regular") could be encoded twice in the list of CFF strings.
(yes, we desperately need unit tests for cffLib...)
2016-05-16 13:11:46 +01:00
Cosimo Lupo
e68e7332a4
[cffLib] replace print with logger (but keep debug messages off)
...
All these debug messages were disabled, and I don't wish to re-enable them
while running TTX in verbose mode. So here I use a custom level less than
logging.DEBUGm to make sure they will be muted even when the logger's level
is equal to logging.DEBUG.
2016-01-27 19:02:48 +00:00
mashabow
57e7a6b7a7
[cffLib] Fix encoding of Notice and Copyright values in XML on Python 2
2015-07-03 22:33:17 +09:00
Behdad Esfahbod
df2906b0ad
Fix a few issues found by landscape.io
2015-04-26 02:17:13 -04:00
Behdad Esfahbod
b30e12ae00
More whitespace
2015-04-26 02:01:01 -04:00
Behdad Esfahbod
bd67253118
Some more whitespace fixes from pep8 tool
2015-04-26 01:59:01 -04:00
Behdad Esfahbod
bc7cf1fd5d
[cffLib] Packing charset with only .notdef glyph fails
...
Fixes https://github.com/behdad/fonttools/issues/136
2014-07-09 14:30:06 -04:00
Behdad Esfahbod
ade1972557
Remove CFF Index.count member
...
Clean up. len(index) should be used instead.
2014-06-16 15:35:15 -04:00
Behdad Esfahbod
b7367012e4
Add __contains__ to cffLib
2014-06-13 12:47:55 -04:00
Behdad Esfahbod
3012076942
Minor
2014-05-19 12:43:37 -06: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
Khaled Hosny
522cd11d51
Remove unnecessary new line after <CFF> tag
...
No other table does that.
2013-12-16 01:29:16 -05:00
Behdad Esfahbod
85a64db541
py23 Another cff encoding fix
2013-12-16 00:05:10 -05:00
Behdad Esfahbod
617ec41d4c
Fix encoding conversion in CFF
...
Was broken with Python 3 and Salsa-Regular.otf for example.
2013-12-10 18:54:26 -05:00
Behdad Esfahbod
9e6ef94b55
Use "is None" instead of "== None"
...
The latter hits the __eq__ method and can fail because we now
do not allow comparing objects of different types.
For example, was failing subsetting Andika-R.ttf.
2013-12-04 16:35:10 -05:00
Behdad Esfahbod
153ec40209
Fix a few pychecker warnings
...
Fixes https://github.com/behdad/fonttools/issues/58
2013-12-04 01:15:46 -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
d1ba7b53a4
ps23 Fix CFF glyphname encodings
2013-11-28 17:32:44 -05:00
Behdad Esfahbod
024d15317f
py23 Fix CFF string encodings
2013-11-28 17:32:44 -05:00
Behdad Esfahbod
c076261598
s/latin-1/latin1/g
2013-11-28 17:32:44 -05:00
Behdad Esfahbod
18316aa769
ps23 More bytes fixes. All ''join()'s fixed
2013-11-28 17:32:43 -05:00
Behdad Esfahbod
319c5fd10e
py23 introduce byteord() and use it
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
b7a2d797a4
py23 Use bytechr() instead of chr()
2013-11-27 15:25:00 -05:00
Behdad Esfahbod
bb0beb7385
2to3 Use py23 to close some of the bytes/str/unicode gaps
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
c2297cd41d
2to3 --fix=dict with manual cleanup
2013-11-27 14:01:45 -05:00
Behdad Esfahbod
2a9b86816e
2to3 --fix=basestring with manual fixup
2013-11-27 14:01:44 -05:00
Behdad Esfahbod
14fb031125
Remove most uses of module string
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
e5ca79699d
2to3 --fix=map with manual cleanup
2013-11-27 04:38:16 -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
cd5aad92f2
2to3 --fix=raise
2013-11-27 02:42:28 -05:00
Behdad Esfahbod
180ace6a5f
2to3 --fix=ne
2013-11-27 02:40:30 -05:00
Behdad Esfahbod
bc5e1cb195
2to3 --fix=has_key
2013-11-27 02:33:03 -05:00
Behdad Esfahbod
8c5c966471
Store CFF names in UTF-8
...
We switched XML encoding from Latin-1 to UTF-8. Adjust CFF
code.
2013-10-28 13:20:00 +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
jvr
91bca42442
merging fixes & changes from delft-sprint-2012
...
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@611 4cde692c-a291-49d1-8350-778aa11640f8
2012-10-18 12:49:22 +00:00
jvr
2a9bcde369
- use the builtin symbols instead of the types module
...
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@542 4cde692c-a291-49d1-8350-778aa11640f8
2008-03-07 19:56:17 +00:00
jvr
f6ff48be3c
better float testing, so numpy.floats also work.
...
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@541 4cde692c-a291-49d1-8350-778aa11640f8
2008-03-07 19:49:25 +00:00