• src/conio/cterm.adoc cterm.c src/syncterm/term.c termtest.c

    From Deucе@1:103/705 to Git commit to main/sbbs/master on Wednesday, March 18, 2026 16:58:48
    https://gitlab.synchro.net/main/sbbs/-/commit/d61223fea0ab02b105315d75
    Modified Files:
    src/conio/cterm.adoc cterm.c src/syncterm/term.c termtest.c
    Log Message:
    Expand test suite to 145 tests, fix retbuf/callback response path

    Tests (99 -> 145):
    Add 46 new tests covering ED modes 1/2, EL modes 1/2, SL, SR, CVT,
    TSR, CTDA, BCDSR, XTSRGA, DECCKSR, CTSMRR (Ps=1-6), DECRQSS (t,
    $|, *|), CTSMS/CTRMS, SGR (dim, blink, noblink, normal intensity,
    default fg/bg, bright bg), CT24BC, OSC 10/11 queries, OSC 8
    hyperlink readback, DECRPM for modes 31-35/67/80 + mouse modes,
    SM/RM for FETM/TTM, APC JXL query, NUL in doorway mode with
    doorway encoding verification, and response ordering regression.

    cterm.c — retbuf audit:
    Convert all response sites from retbuf-gated strcat() to
    cterm_respond()/cterm_respond_printf(). Fixes ANSI mode DECRQM
    (CSI Ps $ p), CTSMRR Ps=4/5, and other queries that failed when
    response_cb was set and retbuf was NULL.

    cterm.c — escaped ST for OSC 8 in STS:
    OSC 8 terminators inside SOS-framed STS content use ESC : \
    instead of ESC \ to avoid premature SOS closure. ESC : is an
    unassigned Fp private-use escape (ECMA-35) that parsers silently
    drop.

    term.c — eliminate dual response path:
    APC handler and WRITE_OUTBUF now use conn_send/response_cb
    exclusively instead of mixing retbuf writes with callback-based
    responses, which caused response ordering bugs.

    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)