Skip to content

04 Jun 2018 - Liblouis

This release contains the usual assortment of braille table improvements, cleanups and bug fixes. The most prominent change is the refactoring of the call APIs by Bert Frees that makes the code much more manageable and solid and will help us in the future to evolve the library.

For a detailed list of all the changes refer to the list of closed issues.

New features

  • Add metadata fields name and display-name to tables thanks to Bert Frees. The name contains a description of the table in the native language. display-name contains an English description.
  • YAML test enhancements
    • You can now test both forward and backwards translation with in the same YAML file and for the same set of tables tests thanks to Bue Vester-Andersen. See the documentation for the bothDirections testmode.
    • Add maxOutputLength option in YAML tests.

Bug fixes

  • Fix a bunch of buffer overflow errors in table parsing thanks to Samuel Thibault and Christian Egli (CVE-2018-11410 and CVE-2018-11440).
  • Fix input-output mapping of context rules thanks to Bert Frees.
  • Fix back tracking with all caps words thanks to Bert Frees.
  • Fix context rules with lookback thanks to Bert Frees.
  • Fix a memory leak in default table resolver thanks to Timothy Lee.
  • Fix an array out of bounds error which caused a crash on i386 thanks to Samuel Thibault.
  • Fix numerous stack-based buffer overflow in table parsing thanks that were reported by Henri Salo thanks to Christian Egli (CVE-2018-11683, CVE-2018-11684 and CVE-2018-11685).

Braille table improvements

  • Fix some forward- and back-translation errors in Unified French Grade 2 thanks to André-Abush Clause.
  • Updates to the Simplified-Chinese Braille Translation Table thanks to Roshanson
    • Added many polygraphs to distinguish different meanings of a word
    • Letter identifiers have been modified. In China’s school for the blind, when many visually impaired students learn, the lowercase letters often do not have to mark the identifiers deliberately. So in this version, we this item has been deleted.
    • Fixed a bug in the braille code that revises the space and 0
  • Updates to Bopomofo-based Chinese Braille Table thanks to Bo-Cheng Jhan
    • Redefine some Chinese words and phrases
    • Add various Nemeth symbols such as arrows and parenthesis
    • Complete the support of CJK Compatibility block
    • Fix the support of various parentheses, brackets, and braces
    • Minor fixes (kana rules, punctuation marks, Greek alphabets)
  • New 8 dot computer braille table for Czech thanks to Jan Hegr.
  • Fixes to Czech 6 dot table thanks to Jan Hegr
    • Fixed curly brackets representation
    • Fixed number sign representation
    • Added copyright sign
  • Minor fixes to Hebrew thanks to Erez Kugler.

Other changes

  • Refactoring thanks to Bert Frees
    • Simplify the emphasis class handling by combining all related vars in a struct EmphasisClass
    • Simplify input/output buffer handling
    • Combine emphasisBuffer and transnoteBuffer
    • Group match related vars in a struct PassRuleMatch
    • Remove dead code
  • Fixed many warnings thanks to Christian Egli

Deprecation notice

  • The mode parameter in lou_dotsToChar never had any effect and is now deprecated.
  • In 2012 a new way to specify the test and action part in context and multipass opcodes was introduced. It was never documented and has no known usage in the wild. However it opens up the attack surface to the table parsing code. Therefore it is deprecated and will be removed in the next release.

Backwards incompatible changes

  • None

New, renamed or removed tables


  • cs-comp8.utb


  • None


  • Cz-Cz-g1.utb