• src/sbbs3/js_console.cpp

    From Rob Swindell (on Windows 11)@1:103/705 to Git commit to main/sbbs/master on Tue Mar 31 21:12:06 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/460361f2350c6acb713a9910
    Modified Files:
    src/sbbs3/js_console.cpp
    Log Message:
    Better argument validation and error reporting from console.gotoxy()

    e.g. console.gotoxy()
    Error: Insufficient Arguments (0 provided, a minimum of 1 expected)

    e.g. console.gotoxy(false)
    Error: console.gotoxy: invalid argument type (expected object or number-pair)

    e.g. console.gotoxy(0)
    Error: Insufficient Arguments (1 provided, a minimum of 2 expected)

    e.g. console.gotoxy({})
    Error: console.gotoxy: object argument 'x' property is an unexpected 'null' or 'undefined' value

    See issue #1107 for details
    --- 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 Wed May 6 19:41:53 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/8f1fdf8e6b1a4e39b4200fcb
    Modified Files:
    src/sbbs3/js_console.cpp
    Log Message:
    js_console: document js_do_lock_input asymmetric contract + SUPPRESS (CID 469125)

    js_do_lock_input is intentionally asymmetric — it locks OR unlocks the caller-side input_thread_mutex based on its bool argument. The
    JS-binding side (console.lock_input(true|false)) and the C-side hotkey
    handlers rely on this to bracket interactive prompts. Coverity's lock
    tracker can't model the asymmetric contract, so it flags the lock=true
    path as "returning without unlocking" and propagates the complaint to
    every transitive caller (CID 469134 editfile, 470386 uploadfile,
    470390 viewfile, 479098 pack_rep, 470388 handle_ctrlkey, etc.).

    Document the contract in a function-leading comment and suppress the
    LOCK warnings at the actual lock/unlock sites.

    Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)