2005-02-23 Bill Haneman <billh@gnome.org>

	* configure.in, NEWS, README: Revved to 0.0.3.
	
	* gnome-braille/Makefile.am: 
	Added braille-table.c and braille-table.h.
	
	* gnome-braille/braille-table-encoder.c:
	Split the braille table internals out into 
	braille-table.c and braille-table.h.

	* gnome-braille/braille-encoder.c:
	Moved the BrailleContext globals here, and exposed
	(they were statics before).  Also moved
	(braille_context_add_new, braille_context_match): Moved here,
	exported.
	(braille_get_contexts): Moved here and exported.

	* gnome-braille/braille-encoder.h:
	Moved BrailleContext here.
	
	* gnome-braille/braille-table.h:
	Export braille_table_construct_from_file,
	braille_table_construct_from_stream,
	braille_table_encode_to_buffer, braille_table_check_suffix.
	(braille_table_check_suffix): Now return a gchar*, or NULL - 
	we still get success/failure info, because even if there's
	no prefix to add, we return an empty string on success,
	and only return NULL if we didn't find a suffix.
	
	* gnome-braille/braille-table.c:
	(braille_table_lookup_char): Fix, avoid strdup'ing NULL.
	(braille_table_match_string): Don't search if the string is empty.
	(braille_table_encode_chunk_to_buffer): Fixes for string match
	case, allow pass-through, prevent getting stuck in a loop here.
	(ucs_block_new): Use g_malloc0 instead of g_malloc, to ensure that
	we're not storing random junk in parts of the table which are
	unfilled by the data stream.
	(braille_table_construct_from_stream): Support 'PASS-THROUGH'
	token on UNKNOWN-CHAR line.  Fix for behavior of unspecified 
	context change strings, i.e. if the token returned is the empty
	string.
	(braille_table_encode_chunk): New, refactor.
	(braille_table_append_to_buffer): New, part of refactor.
	Fixed the offset/index math, the push/pop context strings, and
	other bugs.

	* tables/grade2-en.tbl:
	Experimental implementation of 'naive' grade2 contraction. It always
	contracts, does not implement contextual or semantic rules for
	when to do so.
 	
2005-02-22 Bill Haneman <billh@gnome.org>

	* gnome-braille/braille-console.h:
	New class/interface, allows creation of an object comprising both
	a list of chained encoders and an output display.	
	
	* gnome-braille/braille-console.c:
	New file.
	
2005-02-21 Bill Haneman <billh@gnome.org>

	* gnome-braille/braille-encoder.c, braille-encoder.h:
	(braille_encoder_get_alternate): New, returns the alternate
	encoder which may have been specified by a call to
	braille_encoder_set_alternate.

	* gnome-braille/braille-table-encoder.c:
	(BrailleEncoderFlags): New enum/typedef used to control
	fine-grained behavior of encoders.  Currently private to
	BrailleTableEncoder, but may be pushed out as public API in
	future.
	(braille_table_check_suffix): Now return a boolean to indicate
	whether the character points to a suffix.
	(braille_output_buffer_free): New, needed to free allocated
	buffers.
	(braille_table_decompose_and_lookup_char): Bin the leak here
	and in callers - we now always return alloc'd strings when doing
	lookups.
	(braille_table_lookup_char): Always return alloc'd string.
	Fix the broken pass-through behavior, we now pass-through
	pre-brailled characters as we should.  Don't defer to our
	delegate tables here, do that in braille_table_translate_string
	instead.
	(braille_table_match_string): Duplicate the memory returned. Don't
	require that char_index be non-NULL - if it's null, don't write
	into it.
	(braille_table_encode_chunk_to_buffer): New, factored out of
	braille_table_encode_to_buffer.  Support use of prefix/postfix
	strings to indicate when context switching occurs, including the
	insertion of 'locale' substrings into the prefix context switch
	string if "%s" is included in the string, i.e. like sprintf.
	(braille_table_translate_string): Turned off chaining to
	alternates for the moment, since we're now doing everything we
	used to do with chaining, with delegation instead.  Chaining is
	still useful, will turn it back on later.
	(braille_table_construct_from_stream): Read prefix/postfix context
	change strings from the 'DELEGATE' line if they are available - we
	use tokens [3] through [5] for the context-push, context-pop, and
	single-char-escape strings, respectively,  Only the first two are
	currently implemented.

	* gnome-braille/braille-table-encoder.h:
	Added members 'context_push_string', 'context_pop_string', 
	'char_esc_string'.

	* tables/bharati-devanagari.tbl:
	Re-added the halant codepoint, with an empty lookup string (since
	it's a suffix which is represented by a 'prefix' cell in the
	halant context).
	Added a lookup point for the space (0x20) character, since we
	don't want to incur a context switch when brailling spaces.
	Added push and pop context-change dot strings for DELEGATE FILE
	standard.tbl, which match the ICEB recommendation for 
	context switches.

	* tables/kana.tbl:
	Added push and pop strings to match the current 'start english' context
	switch convention for japanese braille.
	
2005-02-17 Bill Haneman <billh@gnome.org>

	* tables/bharati-devanagari.tbl: Fixed problem with
	too many suffixes - use only halant.
	Add the proper vowel-suffix codepoints.
	Moved the ENCODING line to the top, where it belongs.

	* tables/hangul.tbl: Initial checkin of hangul jamo table.

	* tests/test-braille.c: Add second command-line arg for 
	desired table.  Print the original UTF-8 as part of the log
	output, to help tester understand what it happenning.

	* tests/test-braille-input.utf8: 
	Add test sections for hangul (ko), devanagari (hi),
	and german (de).

	* tables/standard.tbl: Fix broken braille dot pattern for 
	space character (U+20) !

	* gnome/braille/braille-table-encoder.c:
	(braille_table_decompose_and_lookup_char): New, 
	decompose a unichar into its canonical unicode
	decomposition, and look each resulting character up.
	(braille_table_lookup_char): Fall back to 
	braille_table_decompose_and_lookup_char if we fail to
	find a unicode character in the current table.
	Important for languages like Korean which have many 
	unicode points.  Probably useful for foreign words 
	interspersed in text in another language, too.

2005-02-17 Bill Haneman <billh@gnome.org>

	* tables/kana.brl, tables/bharati-devanagari.tbl:
	Put the ENCODING line at the top, where it needs to be.
	Remove absolute path from DELEGATE FILE line.

	* gnome-braille/braille-table-encoder.c:
	(braille_table_construct_from_file): Make smart enough
	to handle non-absolute paths - use ($datadir) instead.
	
2005-02-16 Bill Haneman <billh@gnome.org>

	* tables/bharati-devanagari.tbl:
        Initial check-in of devanagari braille table.

	* gnome-braille/braille-table-encoder.h:
	(BrailleTableEncoder): Added 'strings' hashtable.

	* gnome-braille/braille-table-encoder.c:
	(match_string_func): New, for matching UTF-8 string-to-cells
	conversions.
	(braille_table_match_string): New, return cells from string
	lookup, and increment char_index and instring pointer.
	(braille_table_encode_to_buffer): Revised input params to allow
	context-based string substitution.  Refactored.
	(braille_table_add_string): New, add a string from a braille table
	by parsing an UTF8-STRING input line.
	(braille_table_construct_from_stream): Handle UTF8-STRING case.

	* tables/kana.tbl:
	Added copyright notice and GPL license.
	Added hiregana table UCS2 points, table is now
	basically valid for katakana and hiregana input.
	
2005-02-16 Bill Haneman <billh@gnome.org>

	* gnome-braille/braille-event-source.h:
	#include "braille-driver.h" and "braille-encoder.h",
	to get BrailleEncoderError and BrailleDriverStatus defs.
	(BrailleKeyType): New enum.
	(BrailleEventCategory): New enum.
	(BrailleEvent): New definition.
	Stronger typing for braille event sources, braille events,
	and braille event handlers.
	(BrailleNotifyFunc): New, stronger typing.
	(set_event_handler): Virtual func renamed, take BrailleNotifyFunc
	instead of GCallback.
	(braille_event_source_set_event_handler): Renamed from
	braille_event_source_add_event_handler, take more strongly typed
	callback func.

	* gnome-braille/braille-event-source.c:
	(braille_event_source_set_event_handler): Rename, revise to
	take BrailleNotifyFunc param in place of GCallback.
	
	* gnome-braille/braille-encoder.c, braille-encoder.h:
	(braille_encoder_chain_offsets): Add len_in and len_next,
	since we need to know the length of the offset arrays.

	* gnome-braille/braille-encoder.h:
	(BrailleEncoderError): Added this definition.

	* gnome-braille/drivers/braille-monitor-driver.h:
	(BrailleMonitorDriver): Changed event_callback to BrailleNotifyFunc.

	* gnome-braille/drivers/braille-monitor-driver.c:
	Changed to match new prototypes in braille-driver.h.
	
2004-05-17 Bill Haneman <billh@gnome.org>

	* gnome-braille/braille-driver.[hc]:
	(braille_driver_set_virtual_caret): New method.

	* gnome-braille/drivers/braille-monitor-driver.c:
	(braille_monitor_driver_set_virtual_caret): 
	Implementation of set_virtual_caret.
	
2004-05-05 Bill Haneman <billh@gnome.org>

	This is the initial codebase for gnome-braille.

	
