https://gitlab.synchro.net/main/sbbs/-/commit/6160b43cb83228a4ef3d6d2a
Modified Files:
src/conio/cterm.c cterm.h cterm_test.c
Log Message:
Fix REP (CSI b) across packet boundaries, add 55 ANSI unit tests
Move lastch from cterm_write local variable to cterm->lastch in the
cterminal struct so REP works when the character and the CSI b sequence
arrive in separate cterm_write calls (e.g., split across TCP packets). Previously REP would silently do nothing if the data was split.
Add 55 ANSI-BBS tests to cterm_test (177 total): C0 controls (NUL, BS,
HT, LF, CR, NEL, HTS, RI, RIS), cursor movement (CUU/CUD/CUF/CUB/ CNL/CPL/CUP/HVP/CHA/VPA/HPA/HPR/VPR/HPB/VPB + clamping), erase ops (ED/EL/ICH/DCH/IL/DL/ECH), SGR (reset/bold/blink/negative/fg/bg),
margins (DECSTBM/DECSLRM), scrolling (SU/SD), modes (autowrap/nowrap/
origin), DEC rectangular ops (DECERA/DECFRA/DECCRA), REP with split
regression test, and save/restore cursor (SCOSC/SCORC/DECSC/DECRC).
Co-Authored-By: Claude Opus 4.6 (1M context) <
noreply@anthropic.com>
---
■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net