Skip to content

Rows vanish from vttest's SI/SO screen after a 96-character G1 designation (ESC - A) #137

Description

@JohnCampionJr

vttest's Shift In/Shift Out test (menu 3 → "Test Shift In/Shift Out") draws two three-row charset blocks. The G0 block renders fully; of the G1 block — designated Latin-1 via the 96-character-set form ESC - A — only the third row (`…~) appears. Rows 8 and 9 (!"#…? and @A…_) never make it to the screen, though they are present in the stream:

ESC - A  ESC[8;10H !"#$%&'()*+,-./0123456789:;<=>?  ESC[9;10H@AB…^_  ESC[10;10H`ab…~ DEL

Actual screen: rows 8–9 blank, row 10 correct.

Mechanism not yet pinned — the designator that precedes the loss is the 96-set form (ESC - Ps for G1, vs ESC ) Ps for 94-sets), which suggests the parser mishandles that intermediate and eats or misroutes what follows. Adjacent to but distinct from #131: no single/locking shifts are involved, just SI/SO with a 96-set G1.

Found by replaying a captured vttest corpus; deterministic at the buffer level.

🤖 Generated with Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions