https://gitlab.synchro.net/main/sbbs/-/commit/cd906399af94415ff9f86d5a
Modified Files:
src/sbbs3/ansi_terminal.cpp
Log Message:
ANSI_Terminal: fix cursor tracking of ED, CNL/CPL, DECSTBM, IND, and RIS
The output parser tracked every ED (CSI Ps J) as homing the cursor and resetting the line counter, but only CSI 2J does that (and only on
ANSI-BBS terminals such as SyncTERM). Synchronet itself sends CSI J for
Ctrl-A J, @CLR2EOS@, and console.cleartoeos(), after which the tracked row/column were wrong: the next auto-pause came late, and with console.optimize_gotoxy enabled, a following gotoxy() could be skipped entirely.
Also track, matching SyncTERM's cterm:
- CNL (CSI E) and CPL (CSI F) moving to column 1
- DECSTBM (CSI r) homing the cursor when the margins are valid
- IND (ESC D) moving down one line
- RIS (ESC c) resetting the attribute to the terminal default
DECSC/DECRC (ESC 7 / ESC 8) remain untracked.
Fixes #1314
Co-Authored-By: Claude Opus 5.5 <
[email protected]>
--- SBBSecho 3.38-Linux
* Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)