• src/sbbs3/ansi_terminal.c

    From Rob Swindell (on Windows@VERT to Git commit to main/sbbs/m on Sunday, January 11, 2026 19:36:00
    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
    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows@VERT to Git commit to main/sbbs/m on Sunday, January 11, 2026 23:23:00
    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.
    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows@VERT to Git commit to main/sbbs/m on Monday, January 26, 2026 19:07:00
    https://gitlab.synchro.net/main/sbbs/-/commit/c5d806d626b4aaa5afee53b1
    Modified Files:
    src/sbbs3/ansi_terminal.cpp js_console.cpp terminal.h
    Log Message:
    Add a cursor position optimizer to the ANSI_Terminal class

    (disabled by default, Deuce is pretty sure it'll break somethings)

    The performance of some scripts (e.g. utopia.js) benefit from the filtering of redundant cursor position changes and though we can (with v3.21) check the console current_row/column properties in the script to avoid sending redundant changes to cursor position, that is not backwards compatible with Synchronet v3.20 since its console.gotoxy() method did *not* update the internal concept of where the cursor position is currently. So any optimization in the script itself would have to either:

    a) be Synchronet-version specific or risk incorrectly filtering out cursor position changes that were not actually redundant, or

    b) track the cursor position itself after every call to console.putmsg, write, print, etc.

    I figured this simple optimization could be available to any script, if it wanted it, but the script should be sure to set the setting back (e.g. by using js.on_exit) to the value it had when the script was started.

    The new JS 'console' property (and Terminal class member) is: optimize_gotoxy (defaults to false/off).
    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows@VERT to Git commit to main/sbbs/m on Tuesday, January 27, 2026 16:47:00
    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.
    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net