Subj : src/sbbs3/ansi_parser_test.cpp ansi_terminal.cpp ansi_terminal.h con_o To : Git commit to main/sbbs/master From : Rob Swindell (on Debian Linux) Date : Thu Sep 24 2026 21:22:49 https://gitlab.synchro.net/main/sbbs/-/commit/12d817c0b81a049f4434b5bf Modified Files: src/sbbs3/ansi_parser_test.cpp ansi_terminal.cpp ansi_terminal.h con_out.cpp terminal.h Log Message: Keep whole control strings out of the line buffer restoreline() replays the line buffer to redraw a line after, for example, a node message interrupts it. The line buffer already skipped the body of a DCS/OSC/PM/APC string, but kept its "ESC _" introducer and the final byte of its terminator. Replaying those opens a string the terminal never sees closed, so it swallows all following output: an @SOUND: in a prompt, followed by an incoming node message, was enough. term_out() now records where each sequence begins in the line buffer and rolls the buffer back to that point when a sequence completes, or breaks, having been a control string. CSI sequences are left in place, so restoreline() still restores colors. ansi_parser_test.cpp pins the parser states this depends on. Co-Authored-By: Claude Opus 5.5 (1M context) --- SBBSecho 3.37-Linux * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705) .