• src/sbbs3/xtrn_sec.cpp

    From Rob Swindell (on Windows)@VERT to Git commit to main/sbbs/master on Saturday, September 23, 2023 20:29:02
    https://gitlab.synchro.net/main/sbbs/-/commit/8facd954892600d2d636ca6a
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    Add space after numeric value on second line of DOORFILE.SR

    This appears to work around a bug in BRE, FE, and TAL where they don't recognize the "1" (ANSI supported) unless there is at least one other
    character on the line following the decimal digit, resulting in the
    unnecessary prompting of the user:
    This game is much more enjoyable with ANSI graphics enabled.
    Do you want ANSI Graphics? (Y/n)

    As reported by "ben" in IRC.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Wednesday, February 07, 2024 13:19:47
    https://gitlab.synchro.net/main/sbbs/-/commit/9fe49eba2534f6efe40efc56
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    Another time_t printf
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Sunday, March 03, 2024 18:31:44
    https://gitlab.synchro.net/main/sbbs/-/commit/161f9470a75a51d04ef27fac
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    Clear any mouse hot-spots before executing external program from exec_xtrn()

    As Nelgin pointed out, mouse hot-spots were still active when running external programs (door games) - so clear any active hot-spots before running external programs.

    This could possibly be done in external() instead, but this sufficient for
    now. I wouldn't want a menu that EXEC's something (via @-code) to lose all its hot-spots as a result.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Saturday, June 01, 2024 18:45:06
    https://gitlab.synchro.net/main/sbbs/-/commit/69ee25bcc41ba5df75337395
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    Add support for command-line specifiers in external program 'startup dir'

    The exception is: DOS programs on Linux (e.g. Linux DOSEMU), due to the
    funky drive letter mappng, this can't be supported for those external
    programs.

    As requested by Fluid via IRC, for Frotz support, to store user-unique
    data files in data/user/####.something (e.g. "%juser/%4.zork").
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on ChromeOS)@VERT to Git commit to main/sbbs/master on Sunday, March 23, 2025 18:11:53
    https://gitlab.synchro.net/main/sbbs/-/commit/7550784ff7d067f3b418b4e9
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    Don't close logfile_fp before running JavaScript externals

    This would've prevented some JS log functions from writing to the node.log file (which gets concatented onto the daily "system" log files).

    This just came up via code review while looking into Keyop's reported error: term Node 2 !ERROR 9 (Bad file descriptor) in main.cpp line 4606 (node_thread)
    truncating "logfile" access=0

    This is likely unrelated since the "logfile" is immediately re-opened after executing the external program/script.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sunday, August 09, 2026 07:19:11
    https://gitlab.synchro.net/main/sbbs/-/commit/36581ce0202a02c9de0891f8
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    Don't re-credit today's downloads on DOOR.SYS door exit

    Line 30 of DOOR.SYS ("Daily Download K Total") is read back as an
    adjustment: whatever the door leaves there is added to the user's downloaded-byte total and charged against their credits. That was
    correct while we wrote the line as 0, which we did from 2000 until
    c16dfedf4c (arcade-38-task, 2025-06-11) began writing the real running
    total there.

    Since then, a door that merely preserves the line makes us re-add the
    day's downloads and re-charge the credits on every exit. OpenDoors
    does exactly that: it rewrites the whole drop file on exit and passes
    this field through untouched.

    This is latent rather than actively biting anyone: the read-back only
    happens for a door with the per-program "Modify User Data" option
    enabled, which is off by default and effectively never turned on.

    Credit only the increase over the value we handed the door, so an
    unchanged line is worth nothing. A door reporting its own count
    against a zero total, which is the case the original logic was written
    for, still works. Negative and implausibly large values are now
    ignored rather than applied.

    Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net