1866 Commits

Author SHA1 Message Date
Behdad Esfahbod
6fe84c7f74 Add -2 and -3 to run-tests.sh to choose Python 2 / 3 2015-04-15 17:41:12 -07:00
Sascha Brawer
012049d7fb Add unit tests for ltag table
Resolves #226 and #227.
2015-04-15 10:56:28 -07:00
Behdad Esfahbod
034ed355de Fix bytes/unicode detection
https://github.com/behdad/fonttools/pull/233
2015-04-15 10:44:39 -07:00
Behdad Esfahbod
73031d5a63 Allow overriding python for running tests, as well choosing tests
The first arg to run-tests.sh is used as a regex to narrow down
tests to run.  We should extend this to consider all args as
regexes.

Eg:

  ./run-tests.sh xml
2015-04-14 19:19:05 -07:00
Behdad Esfahbod
80758953ff Allow running test suite without git checkout
Should I prefer the git-grep if .git/ is available?
2015-04-14 19:11:25 -07:00
Behdad Esfahbod
8b0152f0a1 Fix XMLWriter to take sinks that accept both bytes() and unicodes()
Fix xmlWriter_test with python3 as well.
2015-04-14 19:07:34 -07:00
Sascha Brawer
2ac42ad3ec Support unittests in addition to doctests
The Python libraries come with two ways of writing unittests:
module unittest, and module doctest. In some cases, unittest
is more natural (less cumbersome) than doctest.

Wrote tests on xmlWriter for illustration.
2015-04-14 17:52:17 -07:00
Sascha Brawer
dc8a66956a Support 'ltag' table for IETF BCP-47 language tags
Resolves #226
2015-04-14 17:50:42 -07:00
Behdad Esfahbod
7c9ab300c2 Add standard imports to all python sources
Previously, the trivial files didn't have them.
2015-04-14 17:26:59 -07:00
Behdad Esfahbod
9db2ace931 Fix ttProgram test for Python3 2015-04-14 13:25:19 -07:00
Behdad Esfahbod
2702a5b879 Hook up ttProgram tests to doctest 2015-04-14 11:51:03 -07:00
Behdad Esfahbod
5cd4e51450 Update MetaTools/buildTableList.py for recent changes 2015-04-14 00:17:52 -07:00
Behdad Esfahbod
60f13a55df Merge pull request #225 from sansplomb/master
sorted vTables
2015-04-11 23:58:06 -07:00
sansplomb
a18416076c sorted vTables 2015-04-10 16:31:41 +02:00
Behdad Esfahbod
64a5103a77 Merge pull request #212 from vitalyvolkov/master
Handle the exception of IndexError when list item access is out of range
2015-04-08 14:33:23 -07:00
Behdad Esfahbod
f1ec43cefa [TravisCI] Test on pypy and pypy3 as well 2015-04-07 19:12:08 -07:00
Behdad Esfahbod
a38c3f577a Try fixing TravisCI build 2015-04-07 19:09:37 -07:00
Behdad Esfahbod
c0e7bb859f Add test to make sure supported table entries are added to git
Catches the vase where support for a table is added, but the .py
file is not added to git (like happened for feat and fvar tables).
2015-04-07 18:27:23 -07:00
Behdad Esfahbod
da900f656c Run module tests as modules 2015-04-07 18:27:23 -07:00
Behdad Esfahbod
f7861e5e58 Add a minimal Makefile that calls setup.py 2015-04-07 18:27:23 -07:00
Behdad Esfahbod
2aac2f0eeb Actually add the fvar table. Ouch! 2015-04-07 18:02:04 -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
Behdad Esfahbod
24264cb7f8 [subset] Fix chaos handling to be more inclusive
If a contextual lookup recurses twice on the same index, that index
most be marked chaotic for the second recursion.

Also, when a non-1-to-1 recursion happens, only mark glyph locations
after current to be chaotic, not everything.

I believe this fixes a bug that before we were not inclusive enough.
Now we might have introduced more false positives, but we are at least
correct.
2015-04-01 18:51:52 -07:00
Behdad Esfahbod
2a7007df7b [subset] Indent 2015-04-01 18:22:51 -07:00
Behdad Esfahbod
9ab1d2f968 [subset] Minor 2015-04-01 18:18:56 -07:00
Behdad Esfahbod
13d48da3a9 [subset] Avoid duplicate recursions in closure_glyphs() for contextuals
Speeds up NotoNastaliqUrdu from 50s to 1.8s.
2015-04-01 18:15:01 -07:00
Behdad Esfahbod
4a3dcd589e [subset] Whitespace 2015-04-01 17:51:54 -07:00
Behdad Esfahbod
22ffbba4b7 [subset] Further narrow down cur_glyphs in recursive contextuals
Improves NotoNastaliqDraft closure_glyphs() time from 60s to 50s.

This was originally introduced in 1d4fa13b4.  I'm fairly confident
new code is correct.
2015-04-01 17:45:55 -07:00
Behdad Esfahbod
c4d0400004 [subset] Speed up closure_glyphs() a bit
Was taking nine minutes on NotoNastaliqUrdu font.
With these changes it takes only(1) one minute now.

More coming.
2015-04-01 17:34:38 -07:00
Behdad Esfahbod
56cc4c151b Merge pull request #223 from anthrotype/woff_checksum
[sfnt] fix WOFF checksum adjustment calculation
2015-04-01 10:58:35 -07:00
Cosimo Lupo
4c4c65fac0 [sfnt] fix WOFF checksum adjustment calculation
Use 'origLength' and 'origChecksum', instead of 'length' and
'checksum', to calculate the checksum adjustment of WOFF.
2015-04-01 10:25:06 +01:00
Behdad Esfahbod
0bf67b50bd [glyf] Implement optimal glyph outline packing; disabled by default
Dynamic-Programming-based algorithm.  Previously we had a greedy
algorithm only.

Unfortunately the savings are truly negligible.  In the order of ~20
bytes for each of the Roboto faces, less so for Noto fonts.  Even on
a 20MB font, it produced less than 100 bytes saving compared to our
greedy packing.  Either I made a huge mistake, or this is so not worth
it.  Anyway, the code is there, but disabled.
2015-03-30 16:47:49 -07:00
Behdad Esfahbod
4e616d2f7f Accept MS Symbol cmap tables as Unicode-compatible
Apparently these days these tables are used to encode symbols in
PUA, so they are still Unicode-compatible...

This follows a similar change in fontconfig.
2015-03-30 16:47:48 -07:00
Behdad Esfahbod
cd1bc34f89 Simplify glyf packing a bit more 2015-03-30 16:47:48 -07:00
Behdad Esfahbod
c72058623b Minor 2015-03-30 16:47:48 -07:00
Behdad Esfahbod
630284e31a Minor 2015-03-30 16:47:48 -07:00
Behdad Esfahbod
0679a7691d Move glyf coordinate delta packing into new function 2015-03-30 16:47:47 -07:00
Behdad Esfahbod
a40b20d0e0 Minor shuffling of glyf compression code 2015-03-30 16:47:47 -07:00
Behdad Esfahbod
a9632a376b Merge pull request #219 from anthrotype/bytesjoin
[_n_a_m_e] fix "can't concat bytes to str" error in python 3
2015-03-20 12:42:53 -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
c511745b2e Work around a Jython bug:
>>> import array; array.array("f", array.array("b", [1,2,3]))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only extend with array of same kind

>>> import array; array.array("f", list(array.array("b", [1,2,3])))
array('f', [1.0, 2.0, 3.0])
2015-03-17 15:32:57 -07:00
Behdad Esfahbod
b9ac90a8f9 [GX] Add 'fvar' table support
I might change the table format in the future, but it's functional now.
2015-03-11 15:29:35 -07:00
Behdad Esfahbod
61cda14c1b Actually add _f_e_a_t.py
Ouch!
2015-03-11 12:31:44 -07:00
Behdad Esfahbod
467a0369e4 Fix test on Python 2.6 2015-03-03 16:05:25 -08:00
Behdad Esfahbod
1296c7457e Make tests pass with Python3
In python3, str(float) is noisy.  Always format floats using "%g".
2015-03-03 15:54:37 -08:00
Behdad Esfahbod
e5b78aa212 Fix run-tests.sh to run on dash
$(()) is more portable than let, who knew...
2015-03-03 11:31:22 -08:00
Behdad Esfahbod
e02b9ea05b Fix tests to return failures 2015-03-03 10:47:40 -08:00