Ben Avison
authored
UTF-8 support from previous version switched in; additional alphabet- conditional support added as follows: * Correctly converts character index returned from Font_FindCaret into byte index into raw string. * Left-arrow, right-arrow, delete-left and delete-right now act as far as the next character boundary, instead of to the next byte. * Menu item text justification works again (it relies on overwriting spaces with hard space characters, which are two-byte characters in UTF-8). * General key handling code has been rewritten. The Wimp now has three internal key input buffers - one each for taking keyboard-generated, task-generated, and function-key-generated strings. Each input buffer is processed in chunks of one character, rather than one byte; malformed UTF-8 characters are rejected, so tasks don't have to worry about them (simplifying their character-handling code). There is also a key output buffer, to ensure that (UTF-8) sequences of Key_Pressed events are not broken up. * As a...