fix(v4): nothing of a session left on screen after logout
From the fresh review of the stick's increment 1 (With fixes): - Critical: after logout Zuse's last screen, her prompt included, could be drawn back on a headless machine. The logout clear (ESC[2J) blanked the pixels only: Alt+TAB, still read while headless, redrew the terminal from its saved text; and if she had Alt+TABbed to the graphics view before the pull, the clear did nothing and her session stayed on screen (and the console did not draw at her next login). Now vt100_reset() forgets everything the terminal has shown -- the on-screen text, the scrollback and their boot snapshots -- makes it visible again and fills the screen; and Alt+TAB does nothing while the screen is off (v3's never is, so v3 is unchanged). - Important: an EMERGENCY_CONSOLE_ENABLED build no longer clears the screen when Zuse's drive is pulled: its console goes on running. Red: alttab_after_logout 183308 (4515 lit), alttab_before_pull 183529 (4539 lit; the console not redrawn), emergency_pull 183759 (0 lit). Green: 184115, 184328, 184552; regression 184805-185956 (screens, keyboard, hotplug, emergency, v3 typed by keyboard) all pass. Accepted: 190111, 190312, 190710, POST 538/538, dict_hash 0xfec8c47cfc6f437f; test-32, 39 modules, 0 failures. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
cab0ffb487
commit
a78cc56c31
@@ -110,6 +110,11 @@ void vt100_puts(const char *s);
|
||||
*/
|
||||
void vt100_toggle_graphics(void);
|
||||
|
||||
/* Forget everything the terminal has shown: the screen filled with the
|
||||
* background, the terminal visible, the on-screen text, the scrollback and
|
||||
* the boot-mode snapshot emptied, the cursor home. */
|
||||
void vt100_reset(void);
|
||||
|
||||
/**
|
||||
* Draw a solid block cursor at the terminal's current position. Static,
|
||||
* not blinking. Idempotent -- safe to call after every keystroke, since
|
||||
|
||||
Reference in New Issue
Block a user