This release is highlighted by a new Norwegian grade 3 contraction table, the result of Lars Bjørndal's work implementing the revised Braille Authority rules. The Swedish tables have been thoroughly renewed and now also cover Sami and Elfdalian. Malayalam has been updated to comply with the new Bharati Braille 2026 rules. Several security vulnerabilities were fixed, and the documentation was improved.
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.
- Bug fixes
- Braille table improvements
- Other changes
- Backwards incompatible changes
- New, renamed or removed tables
Bug fixes
- Fix several memory safety issues:
- a heap-buffer-overflow in
back_passDoActionthanks to Justin Stitt; - a null pointer dereference in
pattern_compile_expression, a buffer overflow in_lou_logWidecharBuf, null pointer dereferences in_lou_compileTranslationRuleand_lou_compileDisplayRule, a segfault inlou_compileString, and missing length validation in_lou_backTranslate, all thanks to FuzzAnything.
- a heap-buffer-overflow in
Braille table improvements
- Major renewal of Swedish 6- and 8-dot tables, now reorganized to share common data. New tables for Sami and Elfdalian are also included, thanks to InsynScandinavia.
- Updated Malayalam table with Bharati Braille 2026 rules, thanks to Jake Kyle.
- Improvements to Hungarian forward and backward translation thanks to Attila Hammer.
- Fix UK Grade 2 back-translation incorrectly expanding letter combinations such as
blandacwhen they appear in the middle of a word, thanks to Kara Louise. - Fix a long-standing typo with
begnum mtin all 5 Danish Grade 2 tables, thanks to Bue Vester-Andersen. - Add a Norwegian table for Spanish text (
es-no.utb), thanks to Bert Frees. - Add a Norwegian grade 3 contraction table implementing the revised Braille Authority rules, along with missing grade 2 contractions and minor fixes, thanks to Lars Bjørndal and Hans Anton Ålien.
- Replace Estonian computer braille table
et.ctbwith the neweret-g0.utb, thanks to Taniel Kirikal and Bert Frees.
Other changes
- Updated documentation to clarify the differences between
digit,litdigitandnumsignopcodes, thanks to Anthony Tibbs.
Backwards incompatible changes
- The table compiler now rejects uppercase virtual dots (
A..~F~); only the lowercase forms (a..~f~) are valid as documented.
New, renamed or removed tables
New
es-no.utbovd-6g0.utbovd-8g0.utbsmi-6g0.utbsmi-8g0.utbsv-6common.utisv-6g0d.utbsv-6g0p.utbsv-6g1.utisv-6g1d.ctbsv-6g2.utisv-6g2d.ctbsv-8g0d.utbsv-8g0n.utbsv-8g1.utisv-8g1d.ctbsv-8g1n.ctbsv-8g2.utisv-8g2d.ctbsv-8g2n.ctbsv-phon.uti
Renamed
- None
Removed
et.ctb- use
et-g0.utbinstead
- use