• src/sbbs3/ansi_terminal.cpp

    From Deucе@1:103/705 to Git commit to main/sbbs/master on Wed Jun 4 21:12:42 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/9286ce0b0f6740c2c1144a0e
    Modified Files:
    src/sbbs3/ansi_terminal.cpp
    Log Message:
    Support terminals that don't allow disabling attributes.

    Both Telemate v4.20 and Qmodem v4.6 don't support these, and Synchronet supports both of those.

    Instead of using the 22, 24, 25, 27, or 28 SGR parameters, always
    use the 0 parameter to turn HIGH, UNDERLINE, BLINK, REVERSED, or
    CONCEALED (respectively) off.

    Fixes issues #934 and #935
    --- SBBSecho 3.27-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Sat Aug 9 10:53:31 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/cd1add2a66bfca2189b424fb
    Modified Files:
    src/sbbs3/ansi_terminal.cpp
    Log Message:
    Don't parse NOINP as ANSI

    Should fix issue #947
    --- SBBSecho 3.29-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Windows 11)@1:103/705 to Git commit to main/sbbs/master on Sun Jan 11 19:36:10 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/817699d96e81bd70dd1e06a6
    Modified Files:
    src/sbbs3/ansi_terminal.cpp
    Log Message:
    Log length of "broken ANSI sequence"

    to help get to the bottom of "Sent broken ANSI sequence ''" log messages
    --- SBBSecho 3.34-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Windows 11)@1:103/705 to Git commit to main/sbbs/master on Sun Jan 11 23:23:54 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/0257d45e57cf284ecb69c28a
    Modified Files:
    src/sbbs3/ansi_terminal.cpp
    Log Message:
    <@Deuce> DigitalMan, why use %u and a cast instead of %zu?

    No good answer given.
    --- SBBSecho 3.34-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Windows 11)@1:103/705 to Git commit to main/sbbs/master on Tue Jan 27 16:47:24 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/4b58a0f7555b9b6b1dd98969
    Modified Files:
    src/sbbs3/ansi_terminal.cpp
    Log Message:
    Fix bug in stuff_str() - didn't return the parsed control character

    This bug broke mouse hotspots that send a control character

    Also, add more optimization to gotoxy() - if we're going to optimize, might
    as well *really* optimize.
    --- SBBSecho 3.35-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Windows 11)@1:103/705 to Git commit to main/sbbs/master on Thu Feb 26 04:57:08 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/6728a622d779b2fed0e5ca09
    Modified Files:
    src/sbbs3/ansi_terminal.cpp
    Log Message:
    Only wait 1 second for the '[' following an ESC (when not in string-input mode)

    This restores the v3.20 behavior, reducing the delay following a single ESC
    key press from 3 to 1 second. As reported by m1ndsurf3r in IRC.
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Debian Linux)@1:103/705 to Git commit to main/sbbs/master on Fri Oct 30 19:20:42 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/c062f230a8c6c8d38b2399ea
    Modified Files:
    src/sbbs3/ansi_terminal.cpp
    Log Message:
    ANSI_Terminal: reset the background to default with SGR 49, not 39

    attrstr() emitted SGR 39 (default foreground) when switching to an
    attribute with BG_UNKNOWN, so the terminal's background color was never
    reset. A background left set (e.g. by ANSI art) then bled into the text
    that followed, while curatr claimed the default background, e.g. when
    pause() or putmsg() restored an attribute saved after an ESC[0m.

    Introduced in 374282bf81 (skins-28-shop, 2025-03-30).

    Co-Authored-By: Claude Opus 5.5 <[email protected]>
    --- SBBSecho 3.38-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Debian Linux)@1:103/705 to Git commit to main/sbbs/master on Fri Oct 30 19:20:42 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/8e1d6c99c5ccf35419c81a83
    Modified Files:
    src/sbbs3/ansi_terminal.cpp
    Log Message:
    ANSI_Terminal::getxy(): discard partial coordinates when restarting

    When an unexpected byte interrupted the cursor position report, getxy()
    pushed the bytes received so far back into the keyboard buffer and started looking for a new report, but kept any row/column digits already
    accumulated into *y/*x. The digits of the next report were then appended
    to them, yielding a wrong position (e.g. row 1 followed by a report of row
    5 returned 15).

    Co-Authored-By: Claude Opus 5.5 <[email protected]>
    --- SBBSecho 3.38-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Debian Linux)@1:103/705 to Git commit to main/sbbs/master on Fri Oct 30 19:20:42 2026
    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)