https://gitlab.synchro.net/main/sbbs/-/commit/bcca49315f5257a349289df7
Modified Files:
src/conio/cterm.adoc cterm.c cterm.h src/syncterm/termtest.c
Log Message:
Implement vertical line tabulation, scroll verification, ANSI mode reporting
Vertical tabs (ECMA-48):
Add VTS (ESC J) to set line tabulation stops at fixed row numbers.
Fix CVT (CSI Pn Y) to advance to the Pn-th next line tab stop
(preserving column) instead of incorrectly acting as horizontal CHT.
When no line tab stop exists, CVT scrolls up and moves to the last row.
Extend TBC: Ps=1 clears line tab at current row, Ps=4 clears all
line tabs, Ps=5 now correctly clears both character and line tabs.
Line tab stops are at fixed row numbers, unaffected by scrolling,
with no defaults set. VT (0x0B) remains a displayable CP437 glyph.
Scroll content verification (tests):
Add scroll_witness_setup/check_up/check_down helpers for verifying
that screen content actually moves during scroll operations.
Strengthen SU, SD, RI_scroll, LF_scroll, DECSTBM_scroll, and CVT
tests to verify content shifted, not just cursor position.
Add SU_margins, SD_margins, SL_margins, SR_margins tests verifying
content inside margins scrolls while content outside stays put.
ANSI mode DECRQM (CSI Ps $ p):
Report all 20 ECMA-48 standard modes: 1-13/15/17/18 permanently
reset (Pm=4), 14/16 changeable (Pm=1/2), 21 GRCM and 22 ZDM
permanently set (Pm=3).
Test count: 145 -> 149, all passing.
Co-Authored-By: Claude Opus 4.6 (1M context) <
noreply@anthropic.com>
--- SBBSecho 3.37-Linux
* Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)