1316 Commits

Author SHA1 Message Date
Cosimo Lupo
77b1a4aa8e rename 'test_data' folder to 'testdata' so it matches #334 2015-08-11 16:31:09 +01:00
Cosimo Lupo
2a713bfd79 [woff2/woff2_test] replace 'StringIO' with 'BytesIO' 2015-08-07 18:23:55 +01:00
Cosimo Lupo
867ad325bf [ttx] add support for dumping WOFF2 fonts to TTX 2015-08-07 18:23:41 +01:00
Cosimo Lupo
eb266373fd [subset] specify woff2 among supported flavors in __doc__ 2015-08-07 18:23:41 +01:00
Cosimo Lupo
0d21b67162 [woff2_test] add unit tests for woff2 module 2015-08-07 18:23:41 +01:00
Cosimo Lupo
4fc34de9e6 [ttLib] add 'test_data' folder containing font data to use in unit tests 2015-08-07 18:23:41 +01:00
Cosimo Lupo
b6ce7ae668 [woff2] add woff2 module with support for reading/writing single WOFF2 fonts (no font collections yet) 2015-08-07 18:23:41 +01:00
Cosimo Lupo
77ffbab995 [glyf] pad glyph data upon compile if self has attribute 'padding' 2015-08-07 18:23:41 +01:00
Cosimo Lupo
98e47a8746 [textTools] add 'pad' function to pad strings with null bytes 2015-08-07 18:23:41 +01:00
Cosimo Lupo
d50af59a52 [ttLib] pass if _getGlyphNamesFromCmap raises KeyError on 'cmap'
when _getGlyphNamesFromCmap gets called by the cmap parser itself, the
partially loaded subtable is removed and then restored later.
However, when a TTFont instance is imported from XML rather than from
binary file, its 'reader' attribute is None, and so the line:

tempcmap = self['cmap'].getcmap(3, 1)

will make TTFont.__getitem__ raise KeyError. It's better to fail nicely,
and return a dummy glyphOrder based on maxp numGlyphs.
2015-08-07 18:23:41 +01:00
Cosimo Lupo
2996c2e308 [sfnt] ovveride __new__ methods of SFNTReader and SFNTWriter to return flavor-compatible instances 2015-08-07 18:23:41 +01:00
Cosimo Lupo
bf0e336d31 replace all 'StringIO' with 'BytesIO' 2015-08-07 17:25:22 +01:00
Cosimo Lupo
2e058808fe [py23] define BytesIO, StringIO and 'UnicodeIO' to disambiguate bytes vs unicode in-memory streams 2015-08-07 17:24:42 +01:00
Cosimo Lupo
9f846d3687 [xmlReader_test] test newlines gets normalised by expat parser, unless escaped 2015-07-27 19:24:02 +01:00
Cosimo Lupo
5102353afb [xmlWriter] escape carriage returns '\r' using XML character entity '&13#;'
Fixes https://github.com/behdad/fonttools/issues/318
2015-07-27 12:58:02 +01:00
Cosimo Lupo
fcd31fdf19 [xmlWriter_test] test carriage returns '\r' are escaped with '
' 2015-07-27 12:58:02 +01:00
Cosimo Lupo
13d7d38259 [xmlReader_test] test that xmlReader correctly decodes UTF-8 bytes 2015-07-26 15:34:58 +01:00
Cosimo Lupo
edeb2c6c98 [xmlReader] open file for reading bytes 2015-07-24 16:59:07 +01:00
Cosimo Lupo
76c05ae052 Revert "[xmlReader] always open files using UTF-8 encoding"
This reverts commit 6b4567fcde138b069b1323d3127c103d007592cd.
2015-07-24 16:59:06 +01:00
Cosimo Lupo
fbdab03a1d Revert "[xmlReader] make expat parser use UTF-8"
This reverts commit fe76598a80b16ed078606090470f491e4aadb660.
2015-07-24 16:59:06 +01:00
Cosimo Lupo
d7d59c527d [fixedTools] make sure fixedToFloat function returns float on both python 2 and 3 2015-07-24 16:48:07 +01:00
Cosimo Lupo
4bfbdc8852 [xmlReader] initialise OTTableWriter instance with self.longOffset = False
Fixes https://github.com/behdad/fonttools/issues/323
2015-07-24 15:55:58 +01:00
Cosimo Lupo
fe76598a80 [xmlReader] make expat parser use UTF-8 2015-07-23 17:03:31 +01:00
Cosimo Lupo
6b4567fcde [xmlReader] always open files using UTF-8 encoding
If no "encoding" argument is provided to Python3 `open`, the default plaftorm's encoding (cp1252 on Windows) is used when decoding bytes to unicode strings.
So, we use the `io.open` function (i.e. a backport of Python3 default file interface) with `encoding="utf_8"` argument.

Fixes https://github.com/behdad/fonttools/issues/323
2015-07-23 16:36:48 +01:00
Cosimo Lupo
c67295d759 remove remaining references to fondLib in macUtils.py and install.txt
Fixes #319
2015-07-08 16:40:19 +01:00
Cosimo Lupo
a54b98f445 add test for stringifyattrs method 2015-07-03 18:20:41 +01:00
Cosimo Lupo
1edb92b2b2 Merge pull request #316 from mashabow/cff-latin1
[cffLib] Fix encoding of Notice and Copyright values in XML on Python 2
2015-07-03 18:14:30 +01:00
mashabow
57e7a6b7a7 [cffLib] Fix encoding of Notice and Copyright values in XML on Python 2 2015-07-03 22:33:17 +09:00
Sascha Brawer
48cfcb076f Add ‘meta’ to the list of supported tables 2015-07-03 15:13:04 +02:00
Sascha Brawer
3a6e5aca55 Merge pull request #315 from brawer/meta
Implement Apple’s “meta” table
2015-07-03 11:43:27 +02:00
Sascha Brawer
11d3770ca6 Implement Apple’s “meta” table
Because I could not find any fonts with “dlng” (design languages) or
“slng” (supported languages) sub-tables, these are not implemented yet.
We could easily implement them according to spec, but it is unclear
to what extent the spec is matching reality.
2015-07-03 11:36:50 +02:00
Behdad Esfahbod
c7187c3b20 Optimize reading array of GlyphIDs 2015-07-03 01:15:16 -07:00
Behdad Esfahbod
7d38ebb143 Minor 2015-07-03 01:01:10 -07:00
Behdad Esfahbod
0097e40ced Minor 2015-07-03 00:55:54 -07:00
Behdad Esfahbod
089241a587 Minor 2015-07-03 00:53:15 -07:00
Behdad Esfahbod
a7e9d634d7 Minor 2015-07-03 00:50:34 -07:00
Behdad Esfahbod
1fbbbdd358 Micro-optimization for previous commit 2015-07-03 00:49:28 -07:00
Behdad Esfahbod
754a20d987 Implement lazy array for loading otData-driven arrays
Speeds up subsetting of GPOS table with many pairs by huge factor
(counted 5).
2015-07-02 18:00:41 -07:00
Behdad Esfahbod
b94ad38da5 [subset] Whitespace 2015-07-02 15:01:24 -07:00
Behdad Esfahbod
92093990cc [ot] Minor 2015-07-02 15:01:20 -07:00
Behdad Esfahbod
aa9b3b6d43 [ot] Add readArray() and writeArray()
To be used soon to optimize partial / glyph array loading.
2015-07-02 15:01:15 -07:00
Behdad Esfahbod
64f1179230 Minor moving code around in prep for optimization work 2015-07-02 15:01:11 -07:00
Sascha Brawer
db1773af5d Remove redundant line
It should have been removed in #4792d7419cd44a6fb3988b760b87dcb494db8488
2015-07-01 12:21:07 +02:00
Sascha Brawer
4792d7419c Do not expose 'fvar' axis and instance flags in XML
The specification defines no values for these flags.
Resolves https://github.com/behdad/fonttools/issues/312
2015-07-01 09:10:32 +02:00
Cosimo Lupo
e05db5c75f [_c_m_a_p] fix compiling of cmap subtable format 6
Fixes https://github.com/googlefonts/fontbakery/issues/551

the `codes` variable needs to be a sorted list of cmap keys, else the following line
```python
codes = range(codes[0], codes[-1] + 1)
```
cannot work properly, since dict keys are unsorted.

Up until 13a08d0c3a59402459875155b7dbd194787fb229, there was a line with
```python
codes.sort()
```
which was deleted for some reason.
2015-06-27 17:01:51 +01:00
Sascha Brawer
292315cf63 [GX] Use OpenType range for weight axis in ‘fvar’ test 2015-06-27 02:07:37 +02:00
Cosimo Lupo
4fd6373b92 [TTFont] keep input file open if we didn't open it 2015-06-26 18:30:18 +01:00
Cosimo Lupo
356c923411 [TTFont] wrap input file in a temporary stream to allow overwriting
Fixes https://github.com/behdad/fonttools/issues/302
2015-06-26 12:19:42 +01:00
Behdad Esfahbod
389c445760 Merge pull request #300 from brawer/fvar
[GX] Make it easier to construct ‘fvar’ tables from code
2015-06-26 01:48:03 -07:00
Behdad Esfahbod
e7795be277 Merge pull request #307 from garretrieger/master
Test for load a kern table with a bad glyph id.
2015-06-25 18:36:02 -07:00