Complete the 8-bit interface architecture #21078

Open
opened 2026-01-31 07:32:32 +00:00 by claunia · 0 comments
Owner

Originally created by @j4james on GitHub (Jan 9, 2024).

Description of the new feature/enhancement

This is a DEC extension which introduced the concept of 96-character graphic sets (ISO Latin-1 being the first of those), and allowed for replacing the DEC supplemental set with Latin-1. That became known as the user-preference supplemental set (UPSS), and later models allowed you to replace it with other character sets as well.

We already support much of this functionality, but what we're missing is the DECAUPSS sequence which handles the UPSS character set assignment, and the DECRQUPSS sequence, which queries the active UPSS assignment. Also a couple of sequences which are used to initialize the G-set and GL/GR mappings for ANSI conformance.

I suspect this functionality isn't widely used, so I can understand if you don't want to include it, but it is a level 3 conformance requirement. It is also implemented by XTerm, so you can think of it as an improvement in our XTerm compatibility.

Proposed technical implementation details (optional)

In the TerminalOutput class we'll need a new wstring_view field to track the active UPSS translation table, and then whenever someone tries to designate character set ID <, we'll use that value instead of Latin1.

Originally created by @j4james on GitHub (Jan 9, 2024). # Description of the new feature/enhancement This is a DEC extension which introduced the concept of 96-character graphic sets (ISO Latin-1 being the first of those), and allowed for replacing the DEC supplemental set with Latin-1. That became known as the user-preference supplemental set (UPSS), and later models allowed you to replace it with other character sets as well. We already support much of this functionality, but what we're missing is the `DECAUPSS` sequence which handles the UPSS character set assignment, and the `DECRQUPSS` sequence, which queries the active UPSS assignment. Also a couple of sequences which are used to initialize the G-set and GL/GR mappings for ANSI conformance. I suspect this functionality isn't widely used, so I can understand if you don't want to include it, but it is a level 3 conformance requirement. It is also implemented by XTerm, so you can think of it as an improvement in our XTerm compatibility. # Proposed technical implementation details (optional) In the `TerminalOutput` class we'll need a new `wstring_view` field to track the active UPSS translation table, and then whenever someone tries to designate character set ID `<`, we'll use that value instead of `Latin1`.
claunia added the Issue-FeatureHelp WantedProduct-ConhostIn-PRArea-VT labels 2026-01-31 07:32:32 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#21078