• src/sbbs3/exec.cpp

    From Rob Swindell@VERT to Git commit to sbbs/master on Sunday, August 30, 2020 13:32:39
    https://gitlab.synchro.net/sbbs/sbbs/-/commit/256251869f924e3acc9ffb8d
    Modified Files:
    src/sbbs3/exec.cpp
    Log Message:
    Previous commit fixed issue with JS_GC before JS_ENDREQUEST

    So revert the order back to the way it was in aa2bcd61e9017816d06e581eef478 (don't you love these git references?).

    Also, the previous fix for js_execfile() calls for global hot-key events also fixed the EX_JS_CX feature I was working on (js_execmodule)!

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to sbbs/master on Tuesday, November 03, 2020 23:49:30
    https://gitlab.synchro.net/sbbs/sbbs/-/commit/175d0fbc996e5292480bab8e
    Modified Files:
    src/sbbs3/exec.cpp
    Log Message:
    Always evaluate js.on_exit() installed expressions.

    I noticed that when executing an external JS with the new "Use Shell / New Context" option set to "Yes", that any expressions (strings) installed via js.on_exit() were not being executed upon exit from the script. These on-exit strings are important for restoring global state information (e.g. control key pass-through, console mode) to the original state before the JS mod made any changes.

    I'm not sure why the special treatment of "scope == NULL" is through-out this function. Going back to v3.16, it appears this was special treatment for JS mods invoked via global hot key event (when scope != NULL). When invoking an xtrn JS mod with the new Context option, the scope argument is not NULL, so this check was defeating the parsing of the "exit_code" and the evaluation of any js.on_exit() installed expressions for no apparent reason. I can't think why global hot key events should be excluded from this logic either.

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Wednesday, November 25, 2020 17:46:10
    https://gitlab.synchro.net/main/sbbs/-/commit/b287a8d0887dce091a965ede
    Modified Files:
    src/sbbs3/exec.cpp
    Log Message:
    Log a better error when attempting to execute a non-existent module.

    Don't complain that exec/<modname>.bin can't be opened. Instead, complain that <modname> doesn't exist and therefore can't be executed. The old message could be misleading/confusing if the expected module is a JS mod (not Baja-compiled .bin mod).

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Wednesday, November 25, 2020 22:01:38
    https://gitlab.synchro.net/main/sbbs/-/commit/10d7a690029318dc4ff59ffa
    Modified Files:
    src/sbbs3/exec.cpp
    Log Message:
    Merge branch 'master' of gitlab.synchro.net:main/sbbs

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Saturday, January 23, 2021 18:51:59
    https://gitlab.synchro.net/main/sbbs/-/commit/47f8c020a88939d18a033542
    Modified Files:
    src/sbbs3/exec.cpp
    Log Message:
    JS module command-lines now supported quoted arguments (w/white-space)

    Example:
    Command-line: ?showargs " a b c "d "e f"
    argc = 3
    argv[0] = ' a b c '
    argv[1] = 'd'
    argv[2] = 'e f'

    This resolves a long-standing TODO comment.

    Also, fixed a problem where multiple spaces between the module name and the first argument would result in argv[0] being set to an empty string.

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Deuc@VERT to Git commit to main/sbbs/master on Sunday, April 04, 2021 19:31:36
    https://gitlab.synchro.net/main/sbbs/-/commit/30ebfa0a61f9fbffdd42cc93
    Modified Files:
    src/sbbs3/exec.cpp
    Log Message:
    Have js_execfile() save/restore callbacks

    This should allow callbacks to not interfere between (say) shells
    and doors.

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sunday, April 10, 2022 20:27:59
    https://gitlab.synchro.net/main/sbbs/-/commit/9d752c75a8cc86f782744075
    Modified Files:
    src/sbbs3/exec.cpp
    Log Message:
    Install OperationCallback for all executed JS scripts

    JS doors with the "Use Shell or New Context" option enabled in SCFG and JS modules installed a global hot key handlers would not automatically terminate when the user disconnected (and js.auto_terminate was true, the default).
    I'm not sure why the operation callback was only installed when scope==NULL
    but always installing it fixes the issue with some global hot key modules
    and JS doors becoming "zombies" when a user disconnects while running them.

    ---
    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, September 10, 2023 15:08:51
    https://gitlab.synchro.net/main/sbbs/-/commit/c97490f1325101d8e97e20cf
    Modified Files:
    src/sbbs3/exec.cpp
    Log Message:
    Don't call putuserdat if the user number is invalid (not logged in)

    This should fix issue #626

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows)@VERT to Git commit to main/sbbs/master on Thursday, September 14, 2023 21:28:57
    https://gitlab.synchro.net/main/sbbs/-/commit/bbe9979815e99664290c9683
    Modified Files:
    src/sbbs3/exec.cpp
    Log Message:
    Don't decrement user.xedit before calling uselect()

    This bug would leave the user's external editor setting decremented by one if they aborted (with Ctrl-C).

    Fixes issue #631

    ---
    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, November 11, 2023 13:07:10
    https://gitlab.synchro.net/main/sbbs/-/commit/00379de8fd71dbb0009e2492
    Modified Files:
    src/sbbs3/exec.cpp
    Log Message:
    Only log a single error message when js_execfile() detects a NULL JS Context

    js_execxtrn() now returns -1 if a JS context can't be created. This eliminates redundant error messages from calling js_execfile with a NULL context.

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net