This release contains a tremendous amount of work many developers. Many long standing bugs have been fixed. The tables can finally be in UTF-8. A grand table cleanup removed duplication from the tables. There are now two extensive test frameworks for table writers. A number of new tables have been contributed on top of the usual assortment of table improvements. Thanks to all of this liblouis has already seen quite a bit of uptake in a number of places, notably the new DAISY pipeline will ship with this release of liblouis.
NOTE: If you have private tables you might want to migrate them to utf-8. To do this just use iconv as follows:
$ iconv -f latin-1 -t utf-8 <input >output
- New features
- Improved the documentation
- Bug fixes
- Braille Table Improvements
New Braille tables
- Estonian grade 0, thanks to Jürgen Dengo.
- Portuguese 8 dot Computer braille, Thanks to Rui Fontes
UTF-8 support in tables
Braille tables can now contain UTF-8 in the opcode arguments.
Improvements to the python bindings
All constants defined in liblouis.h are now exposed in the bindings.
Add a doctest infrastructure
These tests are based on the Python doctest framework and are only run if there is a Python interpreter on the system
Add a test harness
This test infrastructure allows the user to do table tests in a simple and concise syntax. These tests are based on the Python nose testing framework and are only run if either Python 2.x or 3.x with the related nose python module is installed on the system. See the documentation for more information. Thanks to Mesar Hameed.
Add a test harness generator
A harness generator that uses simple text files with a little formatting to help to generate the json harness files. The purpose of this tool is to make it much easier and faster to add checks for a given table. You are expected to read the generated harness file and make necessary changes, the tool only helps you to get the tests into the harness format, not check their validity.
Support for Python 3 in the Python bindings
The Python bindings now work for both Python 2 and Python 3. Thanks to Michael Whapples.
Improved C-based test framework
- Improved the test framework to be able to test translations involving Unicode.
- Added numerous tests, e.g. for lowercase and Unicode, for the input position, for repeated, etc.
Improved the documentation
- Document the test harness (json format, fields, flags).
- Document the use of Valgrind to find memory leaks
- Improve the documentation on the display opcode
lou_translatenow properly handle Unicode characters
- Fix some issues reported by Valgrind
inputPosfor situation where context and multipass opcodes are involved
- Fixed a number of bugs with the letter, uppercase and lowercase opcodes when dealing with Unicode
- Fixed a couple of bugs with hyphenation (documentation, Python bindings and a number of buffer overruns in the C library). Thanks Milan Zamazal (firstname.lastname@example.org) for reporting this.
- Fix a bug in the
$a.matcher in the multipass rules where only 32 chars were matched. It now matches 0xffff chars.
- Fix a bug reported by James Teh related to
Braille Table Improvements
- all table files have consistent encoding, UTF-8.
- The grand table cleanup: Reorganize the tables to remove duplication. Move common parts such as Latin letter, eight and six dot digit definitions to separate files which are then included. This should ease table maintenance. Thanks to Mesar Hameed.
- Fixes to
de-de-comp8.ctbthanks to Aliminator83@gmail.com
- hu.ctb renamed to
- Fixes to
eo-g1.ctbthanks to Aaron Cannon (email@example.com)
hu-hu-g1.ctb: improvements and extensive test harness, with working back-translation, Thanks to Hammer Attila
- Fixes to
fr-bfu-comp8.utbthanks to Michel Such (firstname.lastname@example.org)
- Reworked and extended Ethiopic braille table
ethio-g1.ctb, superseeds gez*, thanks to Dr. Tamru E. Belay (email@example.com)
- Fixes to
no-no-g3.ctbthanks to Lars Bjørndal (firstname.lastname@example.org)