* Refactor get_tx_char()
* Reset to stock version, call byte_at()
The class Fl_Text_Buffer_mod (borrowed from FLTK) contained a modified
version of the method char_at() that effectively made it behave as
byte_at(). Silently modifying a library-provided method not only disables
the access to a certain functionality of the library, but can also cause
other unforeseen consequences. The method was thus reverted to the stock
version and the code that previously called the modified version was
changed to call byte_at() instead.
* Remove unneeded code in FTextTX::nextChar()
* Libtiniconv
- Added libtiniconv (charset conversion library)
- Library Version 1.0.1 fetched from http://tiniconv.sf.net
A small fix made to change a misspelled macro name.
Build system adapted to fit into the fldigi build model.
* Added CharsetDistiller class
- Sanitize input data and convert it into UTF-8
- CharsetDistiller receives input data one byte at a time and converts this
data stream from a particular character set into UTF-8. Invalid input data
is treated as if it was encoded in CP1252. Character set conversion is
performed as soon as possible, i.e., when enough input is received to
constitute a valid character in the input character set, this character is
immediatly converted into UTF-8 and made available at the output.
* Make put_rx_char_flmain() use charsetDistiller
* Make put_echo_char() use CharsetDistiller
* Make pskBrowser use CharsetDistiller
* Added OutputEncoder class
- Used for encoding transmitted data
- OutputEncoder accepts UTF-8 strings at input, converts them to the
selected encoding and outputs them one byte at a time.
* TX character set conversion using OutputEncoder
* Fix backspace for >2byte UTF-8 characters
* Cleanup modem UTF-8 code
- PSK, Olivia, MT63 and MFSK modems:
cleanup of unneeded UTF-8 handling code
- Everything that deals with output character set conversion and data
sequencing is now done using OutputEncoder, so the modems can become
completely agnostic about the character set used. As far as they are
concerned, everything is just byte-sized data.
* Added an array of character set names and identifiers
* UTF-8 code cleanup
- Cleanup of unneeded UTF-8 handling code in add_rxtx_char() and family
* Character set selection menu
- Add menu button to select the active TX/RX charset to the colors-fonts
configure dialog. The setting defaults to UTF-8 (selected at program
startup). The selection is saved to the program defaults configuration
file when "Config/Save" is executed.