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.6
** Investigate another crash/patch reported by brailcom: http://www.freelists.org/post/liblouis-liblouisxml/Another-crash-in-Python-hyphenation
** Document the changes to LOUIS_TABLEPATH
** Extend and document the scripting language
http://www.freelists.org/post/liblouis-liblouisxml/Very-preliminary-documentation-of-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 dependencies.

** 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.

* near term
** (google issue 9) bindings should provide variable to pick up table location at runtime.

** 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. also see
https://bugzilla.gnome.org/show_bug.cgi?id=592421

** fix bug described by squash_space.c

** Fix cursor position problems when capsigns are used.
Originally reported at:
https://bugzilla.gnome.org/show_bug.cgi?id=651217 testcase added in
en-GB-g2_harness.txt, search for 651217. The bug can be seen with
other tables too.

** Esperanto table should not be blacklisted, work out whats wrong and make sure it is usable.

** [mh] According to the harness, Danish table isn't producing correct output.
From memory of Swedish, the actual output is correct, but the harness
might be wrong, best to check with Danish users.

* 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

** 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.

** followup to above enhancement, either at the terminal or when called by 
bindings, we should be able to give more useful feedback, i.e. could
not translate because table not found, or table found but has errors,
or characters undefined, etc. also see:
http://www.nvda-project.org/ticket/2448

** 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.

There was a discussion about this on the mailing list
(http://www.freelists.org/post/liblouis-liblouisxml/Improved-hash-function-for-tables).

** apply the the patch by Igor B. Poretsky

** apply the jptest_patch
