2005-02-21 Bill Haneman * 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.