• src/sbbs3/xtrn_sec.cpp

    From rswindell@1:103/705 to CVS commit on Sat Mar 28 16:45:04 2020
    src/sbbs3 xtrn_sec.cpp 1.87 1.88
    Update of /cvsroot/sbbs/src/sbbs3
    In directory cvs:/tmp/cvs-serv30081

    Modified Files:
    xtrn_sec.cpp
    Log Message:
    Stop searching-for and deleting INTRSBBS.DAT before running any external.
    This is an artifact from SBBS v2 for DOS:
    The file would contain the address of a shadow of the modem status register (written by execdos.exe) for dropped-carrier detection in xsdk doors (or the "dcdwatch" utility) while the BBS was "shrunk" out of memory to execute the external program with maximal available memory.

    --- SBBSecho 3.10-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From rswindell@1:103/705 to CVS commit on Sun May 10 15:23:47 2020
    src/sbbs3 xtrn_sec.cpp 1.89 1.90
    Update of /cvsroot/sbbs/src/sbbs3
    In directory cvs:/tmp/cvs-serv17616

    Modified Files:
    xtrn_sec.cpp
    Log Message:
    Delete the old hard-coded External Program Section (xtrn_sec) implementation. The system must use an external program module (e.g. xtrn_sec.js) now or this function will just display/log an error and exit.

    --- SBBSecho 3.11-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to sbbs/master on Fri Oct 2 19:38:01 2020
    https://gitlab.synchro.net/sbbs/sbbs/-/commit/3209fee4ccbc81050824e696
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    (more) Safe string handlingstrcpy -> SAFECOPYsprintf -> safe_snprintf or SAFEPRINTF2strcat -> SAFECAT
    --- SBBSecho 3.11-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to sbbs/master on Tue Nov 17 22:02:53 2020
    https://gitlab.synchro.net/sbbs/sbbs/-/commit/623d9e3d507c9f7db969da88
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    Don't reset line counter after executing externals.This behavior was cut/pasted from xtrn_sec.js but doesn't play well with logon events (e.g. SBBSIMSG list) that should pause before a following CLS. As reported by altere on the I, the R, and the C.
    --- SBBSecho 3.11-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbsmaster on Tue Nov 24 19:39:25 2020
    https://gitlab.synchro.net/main/sbbs/-/commit/ae6aede74704558ed3e248d1
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    Fix Linux-DOSEMU compile error introduced in previous commit.
    --- SBBSecho 3.11-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Fri Dec 11 13:12:51 2020
    https://gitlab.synchro.net/main/sbbs/-/commit/938c4ee196a477a4eea22130
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    Use term_supports() rather than useron.misc for drop file terminal capsAlways use the return value of term_supports(), which correctly supports pre-logon and auto-terminal-capability-detection, rather than useron.misc for all door drop file generation.This should resolve the issue recently discussed in #synchronet with regards to a user getting non-ANSI output from door games even when using an ANSI-capable terminal.
    --- SBBSecho 3.11-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Tue Nov 23 19:55:53 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/5cf938148bcc110b604c5d7f
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    Continuation of previous commit (support for UART-only doors on Windows)Needed the actually mapping of XTRN_UART -> EX_UART mode flag here.
    --- SBBSecho 3.14-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Wed Feb 23 23:25:45 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/5b9c39e190152b4a2b981ab6
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    Fix wrong size argument (not actual problem)CID 174261
    --- SBBSecho 3.14-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Fri Mar 4 23:16:07 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/959fa9fe08666fe6d0259afd
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    Don't use pointers to the low byte of multi-byte integersThis only works on little endian systems (which is all we support currently).Fixes CID 174261: Wrong size argumentThis binary drop file writing code is pretty terrible and inefficient, but I remember being really proud of it (supporting so many drop files). This really should be re-written to use structures and/or buffered file I/O.
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Tue Mar 8 23:38:32 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/6ddae40a5b23d21b78c63921
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    Fix EXITINFO.BBS generation for 64-bit time_t and moreSo I was working on re-writing some of this door file generation code and noticed that the EXITINFO.BBS files generated by SBBS:1. had a lot of garbage data filling unused string characters (no "harm", but potentially leaking information)2. had the wrong total file length due to 64-bit logontime (time_t)3. had the wrong total file length due to writing 19 GosubData elements (instead of 20)The first and last issues appear to be some of those "forever" (20+ year old) bugs.So I'm guessing no regularly used door games actually use these portions of the EXITINFO.BBS, so most likely: no harm, no foul. But still, best to fix this before I commit the rewrite.
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Wed Mar 9 22:07:34 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/85d9915b8eaa586d5ec4a143
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    Overhaul EXITINFO.BBS creation using C++ templated classesAh, that's better. Actually would work correctly on big-endian platforms (should we ever support one) and with way less code.
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Wed Mar 9 22:12:06 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/44810bb051267fc8ddeb3c59
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    Remove unused variable
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Fri Mar 11 21:42:50 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/f41d2475beeb7d1fc325c991
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    Remove now-unneeded str2pas() functionFunctionality replaced with Pascal::String
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Sat Mar 12 23:13:18 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/1abae6a2a5e9b86a92f184d2
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    Use buffered file I/O when writing drop files and overhaul PCBOARD.SYS... and USERS.SYS file creation using new C++ type definitions in pcbdefs.hpp.This mostly fixes issue #366.
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Sat Mar 12 23:21:15 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/ff60b4f95b2e70842780f94d
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    Address new warning
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Tue Mar 29 12:21:53 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/446f28d60ed14e86814d0cb0
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    Use PRIu64 for (newly) 64-bit user fields (credits, up/download bytes)Fixes recently-introduced crash when generating text drop files (e.g. XTRN.DAT, SFDOORS.DAT, DOOR.SYS, CHAIN.TXT) on Win32 (only) where a 'long int' is still just 32-bit.
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Tue Mar 29 20:18:45 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/df9b2c9d8a8ef1e1d2b2f586
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    CHAIN.TXT files need CRLF terminated linesThis was a regression (to just LF-terminated lines), an accidental change (from "text" to "binary" file-open) in commit 07580ea7b1b6e.
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Thu Apr 21 21:45:17 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/6b36b3792f49d8b37bcbf7d1
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    Limit door.sys numeric values to 32767The DoorFrame door library will about with "Overflow Error" if it reads a door.sys file with lines 16 (calls), 42 (minute credits), or 52 (posted messages) with a value > 32767, the maximum positive value of a signed 16-bit integer. So cap these values in the door.sys file at that maximum. This does potentially break/limit doors that give minutes using the door.sys drop file, so use that "modify user data" option in SCFG with care.Electrosys initially reported this problem with the Lemonade! door game which was barfing on a line 42 value of 449632.
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Sun Apr 24 17:36:19 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/e8c2e70cc1a44a90d7044125
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    Add line 8 (user's real name) to DOORFILE.SR (Solar Realms' drop file)Apparently this line was added at some point, not sure if it's actually usedin any doors, but here it is anyway.
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Sun Apr 24 17:36:19 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/2ebc0bb7892d874db684f9e0
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    Populate line 36 (user alias) of door.sys with the current user's handlePreviously, we just always made this a blank line.
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Sat Oct 8 20:02:23 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/cf35956b350af5ca83395b7c
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    Don't require USE_DOSEMU for DOS-compatible drive mappings in xtrn.datWe no longer use/require the USE_DOSEMU definition anywhere else, sothis was just a miss when the DOSEMU patch was perm-enabled.
    --- SBBSecho 3.15-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 Mon Feb 13 11:20:56 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/553e9229faa73c9f16dfed5d
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    Fix "running external" log message format mistakeIntroduced in commit 73e5dd9c, reported by Codefenix
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Windows)@1:103/705 to Git commit to main/sbbs/master on Sat Sep 23 20:29:02 2023
    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.
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Wed Feb 7 13:19:47 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/9fe49eba2534f6efe40efc56
    Modified Files:
    src/sbbs3/xtrn_sec.cpp
    Log Message:
    Another time_t printf
    --- SBBSecho 3.20-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 Mar 3 18:31:44 2024
    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.
    --- SBBSecho 3.20-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 Sat Jun 1 18:45:06 2024
    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").
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)