Cannot type character with hex code 0xe0 ('р' in CP866 or 'Ю' in KOI8-U)
Cross-platform BBS (ANSI) Terminal
Brought to you by:
deuce
For some reason when I press a key that produces a character with hex code 0xe0, input is completely ignored by SyncTERM and any other next key press is ignored either. In many code pages this is a normal character, for example, in CP866 it is 'р' and in KOI8-U it is 'Ю'. Can you please make an option to treat all key presses normally, like a dumb terminal would treat them?
Anonymous
So, the issue here is that SyncTERM uses the ciolib library, which is an implementation of the old Borland conio for DOS. The
getch()function returns a scan code, not a character, and for scan codes,0xe0indicates it's an extended two-byte scan code.It looks like I'll need to "double"
0xe0entries in every input style, then add code in everything that callsgetch()to handle0xe0e0correctly and fixup the unicode translation tables. I'll try to get this hacked up this weekend, but I'll need to figure out how to test it. I'll try to start with the Win32 console and GDI so hopefully you'll be able to help with that.This should now be fixed in the current git build. I've updated the nightly build on the website as well. Please let me know if this works for you.
Works perfect. Thank you very much for a quick fix! :)