https://gitlab.synchro.net/main/sbbs/-/commit/64f8ea71ff6847c3ff81b656
Modified Files:
src/sbbs3/ansi_parser.cpp ansi_parser_test.cpp
Log Message:
ANSI_Parser: end an SOS string on its string terminator
ESC \ inside an SOS string moved the parser to the ESC state instead of completing the sequence, so the byte after the terminator was parsed as
though it followed an ESC. A CR or LF there (the usual case) made the
sequence broken and putmsg() stripped the whole SOS; a printable
character was swallowed as the sequence's final byte; an escape sequence following it was lost track of. This dates from 374282bf81
(skins-28-shop, 2025-03-30).
ESC \ now completes an SOS exactly as it completes an APC, DCS, OSC or PM string: final state, ansi_was_cc set, final byte '\'.
Co-Authored-By: Claude Opus 5.5 (1M context) <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net