Open goto40 opened 5 years ago
The part of the TADS base code that deals with character-oriented displays (osgen3.c) does not actually support Unicode. It always assumes the text consists of one byte (8 bits) per character. UTF-8 output kind of works only because it's compatible with 8-bit text when sending it to the various osgen3 text functions. But these functions do not actually treat it correctly, even if it appears to display mostly correctly. They get the text length wrong and as such there's some glitches even on output.
Input, however, is where this problem really shows, because each single character matters and getting one character wrong results in the rest not being parsed correctly.
I'm not sure what to do about this. I'd need to implement an osgen3 replacement that is Unicode-aware. No immediate plans for this right now, so this bug will probably remain open for a while.
I use https://github.com/mikawa/G-TADS to create a german TADS project. I installed the 'de_de' files from there.
I created an example project with
beispiel.t
Then i compile my project and I run the t3-file:
The output is ok (I see the mutated vowel rendered correctly with the curses interface).
However, if I enter a mutated vowel I get "??" instead of the vowel (e.g. '??ber' instead of 'über'). The text is interpreted correctly, only the rendered input text is wrong.
Note: with the plain interface works as expected.