This file describes the TODO items for the liblouis project.  	-*- org -*-

When a task is done and accepted, consider moving it into the NEWS
file, with a bit of extra info.

* 2.5
** Document the changes to LOUIS_TABLEPATH
** Extend and document the scripting language
** configure.ac does not check for nose now. Instead it is done with
   a try except in the python script. Need to be added to configure.ac so that debian packages can automatically pick up dependancies.

* near term
** [mh] (google issue 9) bindings should provide variable to pick up table location at runtime.
** Mapping between table filenames, human readable names, and translatable strings, needs to be accessible from bindings.
   Will remove the need of redefining translatable names for the tables in orca, nvda, blaster etc.

** Fix the problem that LOUIS_TABLEPATH always looks in the standard PATH even if
  that was not in the environment var

** Add more test harness data for languages.

** [mh] compBrlLeftCursor is wrong, provide test case for correct behaviour
   Once corrected, consider merging compBrlLeftCursor and compBrlAtCursor, since neither provide the needed behaviour, but the corrected version should.

** [mh] test case for non-null terminated string when chars are undefined.

** fix bug described by squash_space.c

* unallocated
** (google issue 16) infinite loop in lou_backtranslate.

** (google issue 6) italword opcode not documented

** (google issue 4) problem with contraction cursor position and compBrlAtCursor.

** Add java bindings
It would be nice to have some canonical java bindings. There are
several potential candidates:
- Bindings by Michael Whapples
- Minimal jna bindings by SBS
- port jni bindings from utdml
- new jna bindings by Bert Frees

** Enhance the API to handle pre-hyphenated text
This basically just means to port the code which is in the java
bindings to C so that it can be used from other bindings

** Add readline support to all the tools

** Add Berts fabulous table debugger/tracer
There is a as yet unannounced tool that allows you to see which
opcodes have been used for a particular translation. Written in Java
using Berts new java bindings mentioned above

** Use portable malloc from gnulib 
to get rid of the windows #ifdefs

** Update gnulib

** Enhance translation table compiler to issue warnings
   [jb]: It should be an error to define the same
   single-cell dot pattern for two different characters. I am considering
   issuing an error message and rejecting the table if this happens.

  [mh]: It would also be very helpful if we could issue a warning when a character
  has been defined as two or more braille representations.
  Could we have these as warnings, not errors please.

** Optimize for use with large tables
When used with dictionary based tables liblouis is very slow. The
issue is probably that the hash key is not very well suited for this
use case and there will be tons of collisions, making the lookup
essentially linear.

mh: if a braille table is declared as a dictionary, it sounds like the table is wrongly written, and should be a candidate for rewriting.
    Braille contractions are defined as rules, not as instances. The dictionary data should be pulled out to provide test data.

    

