• src/conio/cterm.adoc cter

    From Deuc¿@VERT to Git commit to main/sbbs/m on Wednesday, October 22, 2025 16:03:00
    https://gitlab.synchro.net/main/sbbs/-/commit/54a82f5a91e9f04a59b1df62
    Modified Files:
    src/conio/cterm.adoc cterm.c cterm.txt src/syncterm/CHANGES
    Log Message:
    Add support for DECSCUSR - Set Cursor Style

    We can now control if the cursor blinks.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Tuesday, March 17, 2026 22:37:00
    https://gitlab.synchro.net/main/sbbs/-/commit/db6107bde7cc1855f89844ff
    Modified Files:
    src/conio/cterm.adoc cterm.c
    Log Message:
    Implement DECRQM (Request Mode) for private, ANSI, and CTerm modes

    CSI ? Ps $ p queries DEC private modes (DECOM, DECAWM, DECTCEM,
    video flags, DECBKM, DECLRMM, sixel scroll, mouse, bracket paste).
    CSI = Ps $ p queries CTerm extension modes (LCF, forced LCF, doorway).
    CSI Ps $ p queries ANSI modes (none implemented, always returns 0).
    All unrecognized prefixes/modes return Pm=0 (not recognized).
    Forced LCF reports Pm=3 (permanently set).

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Wednesday, March 18, 2026 16:58:00
    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>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Wednesday, March 18, 2026 16:58:00
    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>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Wednesday, March 18, 2026 16:58:00
    https://gitlab.synchro.net/main/sbbs/-/commit/80b5ad1b89408202579c4fc8
    Modified Files:
    src/conio/cterm.adoc cterm.c src/syncterm/termtest.c
    Log Message:
    Implement DEC rectangular area operations and column editing

    New sequences:
    DECERA (CSI Pt;Pl;Pb;Pr $ z) Ä erase rectangular area
    DECFRA (CSI Pch;Pt;Pl;Pb;Pr $ x) Ä fill rectangular area
    DECCRA (CSI ...params... $ v) Ä copy rectangular area
    DECIC (CSI Pn ' }) Ä insert column(s) within scrolling margins
    DECDC (CSI Pn ' ~) Ä delete column(s) within scrolling margins

    All operations use current SGR attributes for new/erased cells and
    clear hyperlink_id. Coordinates respect DECOM (origin mode) but are
    not affected by margins (except DECIC/DECDC which operate within
    margins only). Cursor does not move. DECFRA accepts any character
    except C0 (0x00-0x1F) and DEL (0x7F).

    cterm.adoc:
    Document all five new sequences. Fix sort order of entire CSI
    section Ä entries now correctly ordered by (final byte, intermediate
    byte, private prefix) in ASCII order, fixing 19 pre-existing
    ordering errors.

    Tests: 149 -> 154 (DECERA, DECFRA, DECCRA, DECIC, DECDC), all passing.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Wednesday, March 18, 2026 21:52:00
    https://gitlab.synchro.net/main/sbbs/-/commit/079cf7902899f1a94746a5ff
    Modified Files:
    src/conio/cterm.adoc cterm.c cterm.h src/syncterm/CHANGES termtest.c Log Message:
    Implement DECCARA, DECRARA, DECSACE and DECRQSS speed query

    Add rectangular attribute operations: DECCARA (CSI $ r) sets SGR
    attributes, DECRARA (CSI $ t) toggles bold/blink/negative, and
    DECSACE (CSI * x) controls rectangle vs stream mode. Extract
    apply_sgr() from SGR handler for reuse by DECCARA. Add DECRQSS
    queries for DECSACE (*x) and DECSCS speed (*r). 11 new tests
    (165 total), cterm.adoc entries, fix unused variable warning.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net