* feaLib: limit language statements to 1 feature block
language exclude_dflt statements should only apply to lookups
defined in their feature block and not to lookups defined
in previous blocks sharing the same feature tag
* feaLib: add BuilderTest::test_FeatureFile_multiple_feature_blocks
Fixed encoding error in subset tool in Windows which system default codepage isn't 65001.
For Example:
When windows default codepage is 936, the command like 'pyftsubset myfont.ttf --text-file=mytextfile.txt' will throw an exception.
This reverts commit fe90e12601b9bea3983ddc1c0ec58303d14bbbe3.
Khaled commented:
> We either need to update the man page or find a way to generate it from other
existing documentation, not just drop it entirely with no replacement
fe90e12601 (commitcomment-18713586)
One notable absence was README.md... :)
For the testdata/*, I now use `include_package_data=True` in setup.py, to automatically install any data files found inside package directories that are also specified in MANIFEST.in file.
I also include the Snippets, which I think should belong to the source distribution, despite not being installed as console scripts like ttx, etc.
The MANIFEST.in does not need to include itself (done by default).
There's no point in installing the test modules if we don't also install the test data.
(BTW, all this stuff would not be necessary if we were to use 'setuptools_scm'
which would just include in the distribution all the files which are tracked by
git version control...)
The file contains outdated information and nobody is maintaining it any longer.
Plus it only works on Linux, and only if pip installing as sudo (which is bad!).
We need proper Sphinx+ReadTheDocs kind of documentation.
To run tox on specific versions of python, you can use the -e option:
$ tox -e py27
$ tox -e py35
To only run tests which match the given substring expression, use
py.test -k option. Do `py.test -h` for more info.
When running `tox` command without specifying any `-e` option, or when no $TOXENV environment variable is specified, the 'envlist' in tox.ini file determines the list of environment tox will operate on.
http://tox.readthedocs.io/en/latest/config.html#confval-envlist=CSV
I chose Python 2.7 and 3.5 because I assume they are the versions that other fonttols developers run their tests on locally, before pushing and let the CI run the tests on the rest of the pythons.
In the upstream google/brotli, if the `decompress` function receives an empty byte
string, it returns a brotli.error; whereas in 'brotlipy' it does not raise but
returns an empty string b"":
https://github.com/python-hyper/brotlipy/issues/43#issuecomment-240378257
This test case asserts that when 'totalCompressedSize' in the WOFF2 header is
incorrectly set, the woff2 reader fails -- either because the brotli decoder
raises an exception, or it returns a string whose length is not the one expected.