• src/doors/syncconquer/door/door_io.c src/doors/termgfx/term.c term.h

    From Rob Swindell (on Debian Linux)@1:103/705 to Git commit to main/sbbs/master on Tue Jul 21 01:49:54 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/17dad6930d25c946b9cc999d
    Modified Files:
    src/doors/syncconquer/door/door_io.c src/doors/termgfx/term.c term.h Log Message:
    syncconquer: don't trust xterm's text-area size as a sixel ceiling

    Both C&C titles rendered an all-black screen in a MAXIMIZED xterm (sixel
    mode) while a small xterm window and Foot played fine. Cause: xterm
    discards a sixel whose declared raster exceeds its maxGraphicSize
    (~1000x1000) whole rather than clipping it, and door_calc_rect() was
    trusting the terminal's exact pixel canvas (ESC[14t) as the sixel
    ceiling whenever it was reported -- but xterm's ESC[14t answer is its
    big TEXT-AREA size (~1900px maximized), not its graphics ceiling. So the
    door emitted a 1833x1146 sixel that xterm dropped entirely. The later click-to-see-buttons was the dirty-rect path emitting small (<1000)
    partial sixels that squeaked under the ceiling. (SyncDuke/SyncDOOM clamp
    to the safe ceiling unless XTSMGRAPHICS is reported and never had this; syncconquer alone trusted the exact canvas, to fill WT/Foot windows.)

    Identify xterm via XTVERSION and resolve the sixel ceiling in precedence
    order: a reported XTSMGRAPHICS ceiling, else an exact canvas ONLY when
    not xterm (Windows Terminal / Foot / SyncTERM render well past 1000px),
    else the safe ~1000px floor. xterm now clamps to 1000x625 and renders;
    other terminals keep their full window size. The negotiated geometry log
    line and Ctrl-S stats gain an xterm marker.

    Adds termgfx_term_parse_xtversion() to the shared termgfx/term.{c,h} -- a rolling-window raw scan of the XTVERSION reply (DCS >|<name>(<ver>) ST),
    a sibling of termgfx_term_parse_status() -- so the doors that roll their
    own terminal I/O can identify xterm. This ports into syncconquer's
    private terminal-I/O copy the fix the shared termgfx_termio.c already
    carries.
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)