Skip to content

15 Jul 2016 - Liblouis

This is the biggest release of liblouis in years. The major news are that we now have proper support for UEB and secondly that liblouis is now licensed under LGPLv2.1+.

In order to support UEB the internals of liblouis have seen a major rewrite. New Opcodes have been added to support the requirements for proper UEB for example for emphasis handling or to handle proper translation of numbers. Changes to the opcodes are described in the documentation. Some of these changes are not backwards compatible. All tables that come with liblouis have been migrated. If you have private tables look at the section on upgrading from previous versions in the wiki.

This release also changes the C API. External applications will have to adapt the way they call liblouis. In particular the typeform parameter has changed.

The license of the library and most of the tables has been changed to LGPLv2.1. For a detailed list which tables are still in the process of migrating the license refer to the wiki page about the license change.

New features

  • Numerous features to support UEB properly. Thanks to Mike Gray, William Freeman, Davy Kager, Keith Creasy and the American Printing House for the Blind for sponsoring this work.
    • support the many emphasis classes needed for UEB.
    • support translation of numbers according to the rules of UEB.
    • Capitalization is now handled just like emphasis.
    • support for numeric mode
  • UTF-8 support for all tools thanks to Christian Egli.
  • The YAML tests now allow for an optional test description. See the documentation for more details.
  • Add lou_checkTable and lou_getTypeformForEmphClass to the C API and to the Python bindings

Bug fixes

  • Stop buffer overrun in lou_getProgramPath, and also free memory after usage. Thanks to Michael Curran.

Other changes

  • The license of the library and most of the tables has been changed to LGPLv2.1+.
  • Improvements to the test suite:
    • Output is printed to stderr. This helps with locating errors when testing with the YAML test suite.
    • typeform is included in output.

Braille table improvements

  • Improved Finish 6-dot braille thanks to Jukka Eerikäinen
  • Improvements to the Chinese braille table thanks to Coscell Kao
  • Improvements to Mongolian thanks to Tsengel Maidar and Sreeja Param
  • Added new Slovak tables based off the official Slovak braille standard thanks to Peter Vagner
  • Changes to the Norwegian tables. There are now three Norwegian 8-dot tables
    • no-no-comp8.ctb: Norwegian 8-dot computer braille table
    • no-no-8dot.utb: Norwegian 8-dot braille table
    • no-no-8dot-fallback-6dot-g0.utb: Norwegian 8-dot braille table with uncontracted 6-dot fallback
  • Changes to the Dutch tables
    • Conforms better to the standard.
    • nl-BE-g1.ctb renamed to nl-BE-g0.utb
    • nl-NL-g1.ctb renamed to nl-NL-g0.utb
  • Improvements to Danish tables: Added grade 2 with limited contractions to 6 and 8 dots. Corrected contraction of many words.
    • Renamed:
      • da-ansi8.dis -> da-dk-octobraille.dis
      • da-dk-g16.utb -> da-dk-g16.ctb
      • da-dk-g18.utb -> da-dk-g18.ctb
      • hyph_da_DK.dic -> hyph_brl_da_dk.dic
    • Removed: da-dk-g28caps.cti, da-dk-g28-patches.cti and da-chardefs8.cti

Backwards incompatible changes

  • The json based harness test suite has been removed as its functionality has been superceded by the YAML tests. Please use these from now on.
  • A number of opcodes to handle emphasis have been renamed.
  • The C API regarding the typeform parameter has changed.

Next release

The next release will be published on September 5, 2016 so please keep up the excellent work and keep those improvements coming.