The liblouis developer team is proud to announce the liblouis release 3.37.0.
Noteworthy changes in this release
The nice thing about creating a release is that you get to bring in all these wonderful contributions that people have provided. This time we have new and improved braille tables for Danish, Devanagari, English grade 3, Estonian 6-dot, Hungarian, Italian 6-dot, Norwegian and UK 8-dot computer. Anthony has done incredible work to fix obscure opcode bugs. XANOY and PGZXB have patched many security problems and finally Benedict Carling has improved typeform handling for back-translation so that it is finally usable.
I’d like to thank everybody for helping to bring liblouis forward.
For a detailed list of all the changes refer to the list of closed issues.
New features
- The typeform buffer is now populated during back-translation. This allows applications to detect emphasis (italic, bold, underline) when translating braille back to text. Thanks to Benedict Carling of Paige Braille.
- The YAML test format has a new “expected_typeform“ field to test that emphasis in braille is correctly detected during back-translation.
Bug fixes
- Both “sufword“ and “prfword“ now correctly recognize “seqdelimiter“ characters as word boundaries during forward translation and respect “nocontractsign“ during back-translation, thanks to Anthony Tibbs.
- Fix contraction opcode bugs when using “nocontractsign“ thanks to Anthony Tibbs.
- Fix a NULL pointer dereference “lou_readCharFromFile“ thanks to XANOY.
- Fix a memory leak in “parseLanguageTag“ when parsing invalid queries and a heap buffer overflow in “syllableBreak“. Both thanks to PGZXB.
- Fix a stack overflow when an invalid “LOUIS_LOGLEVEL“ string is provided and avoid a crash when the table resolver is NULL. Both thanks to Anthony Tibbs.
- Fix an infinite loop in “isEmphasizable“ caused if characters mistakenly reference one another thanks to Anthony Tibbs.
- Fix “capsword“ translation with “endword“ apostrophe’d letters (e.g. AA’s, FBI’s) again thanks to Anthony Tibbs.
- Fix a heap buffer overflow in “translateString“ when handling “joinnum“ or “joinword“ rules. Thanks to Christian Egli for fixing and zerojackyi for reporting it.
- Various code cleanups thanks to Bert Frees.
- Fix a stack buffer overflow in “pattern_compile_expression“ and a stack buffer overflow in “_lou_getTablePath“ when “LOUIS_TABLEPATH“ is too long, both thanks to PGZXB.
Braille table improvements
- Add a complete implementation for UK 8-dot computer braille according to the standard created by the BAUK (Braille Authority of the UK) and currently maintained by the successor organization, UKAAF thanks to Seeing Hands.
- Vastly improved Italian 6-dot braille table thanks to Tommaso Nonis of Vision Dept S.r.l.
- The table has been completely redesigned, and various mathematical symbols, capitalization and punctuation were fixed.
- inputting characters from A to J no longer results in numbers being inserted instead.
- Parentheses, quotation marks, brackets and braces now display correctly
- Emphasis marks have been introduced for bold, italic and underline, allowing these to be viewed in screen reader utilities that support them.
- Improvements to Norwegian thanks to Lars Bjørndal.
- Corrections to Danish Grade 2 thanks to Bue Vester-Andersen.
- Improvements to Hungarian forward and backward translation thanks to Attila Hammer.
- Major updates to Devanagari to comply with the new Bharti Braille rules 2.1. Also support for back-translation support was added thanks to Dipendra Manocha and Jake Kyle.
- Add an Estonian 6-dot braille table based on the official Estonian Braille Standard (March 2009) and Eesti punktkirja käsiraamat (2011) thanks to Artur Räpp and Taniel Kirikal.
- Improvements to English grade 3 thanks to Bue Vester-Andersen.
Backwards incompatible changes
- The “literal“ opcode has been removed as it was synonymous with the “compbrl“ opcode.
New, renamed or removed tables
New
- et-6dot.utb
Removed
- it.tbl – use it-it-comp6.utb instead
Next release
The next release will be published on June 1 2026 so please keep up the excellent work and keep those improvements coming.
Share and Enjoy!
– Christian Egli, on behalf of the liblouis developers