Menu

#123 Cannot type character with hex code 0xe0 ('р' in CP866 or 'Ю' in KOI8-U)

1.2
closed
None
Win32-Console
1.1
2023-12-10
2023-11-28
No

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?

Discussion

  • Stephen James Hurd

    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, 0xe0 indicates it's an extended two-byte scan code.

    It looks like I'll need to "double" 0xe0 entries in every input style, then add code in everything that calls getch() to handle 0xe0e0 correctly 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.

     
  • Stephen James Hurd

    • status: open --> pending
    • assigned_to: Stephen James Hurd
     
  • Stephen James Hurd

    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.

     
  • Anonymous

    Anonymous - 2023-12-10

    Works perfect. Thank you very much for a quick fix! :)

     
  • Stephen James Hurd

    • status: pending --> closed
     

Anonymous
Anonymous

Add attachments
Cancel