This may well be working as intended, but I thought it was worth raising because I found it very confusing. Steps to reproduce:
- Start up k95g
- Set the terminal type to k95
- Connect to a linux host
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.
This may well be working as intended, but I thought it was worth raising because I found it very confusing. Steps to reproduce:
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
SCSin 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 disablingSCSsequences 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
SCSmapping 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 whetherSCSwas working or not.