Skip to content

SCS (Select Character Set) doesn't work with k95 terminal type #550

Description

@j4james

This may well be working as intended, but I thought it was worth raising because I found it very confusing. Steps to reproduce:

  1. Start up k95g
  2. Set the terminal type to k95
  3. Connect to a linux host
  4. echo -e '\e(0jklm\e(B'

I expected that to show line drawing characters, but it does not. I first noticed this when testing my games, and was wondering why none of the soft fonts were working, but realised later it was SCS in general that didn't work.

If I start up with the terminal type as vt220 then it works. But once I switch to k95 it stops working, and switching back to vt220 doesn't fix it. I eventually figured out that echo -e '\e%@' gets it working, which is what makes me think it might be intentional (I'm guessing you might be deliberately disabling SCS sequences when UTF-8 is enabled).

However, AFAIK most modern terminals do not do that. When UTF-8 is enabled, they won't let you map anything into GR, because bytes in the range 0x80 to 0xFF are reserved for UTF-8, but you can still map other character sets into GL. I believe they do this because there are still commonly used Linux apps that rely on SCS mapping to get line drawing characters, but in general a modern terminal will be expected to handle UTF-8.

And even if you want to keep things as they are, I think it's at least worth considering whether the vt terminal types should automatically switch UTF-8 back off again (i.e. re-enabling SCS), because that was the most confusing aspect for me. It seemed random whether SCS was working or not.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions