• src/sbbs3/exec.cpp

    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
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Saturday, December 30, 2023 17:49:02
    https://gitlab.synchro.net/main/sbbs/-/commit/648f020d426dfd7bde139231
    Modified Files:
    src/sbbs3/exec.cpp
    Log Message:
    Don't clear the console-abort flag upon return from executing a JS module

    This completes the revert of commit c22063f9 from (Jun-2-2016). The Baja
    part of that commit was reverted in commit 932fae30 (Nov-15-2016). This behavior has proven to be surprising and annoying for JS mod developers
    (e.g. the yesnobar.js and Nightfox's file searcher/scanner).

    If we still need clearing of abort status after running JS "externals",
    that should probably be done in exec_xtrn(), not here.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on ChromeOS)@VERT to Git commit to main/sbbs/master on Saturday, March 30, 2024 15:37:41
    https://gitlab.synchro.net/main/sbbs/-/commit/9013f866a8231f39f066fc9b
    Modified Files:
    src/sbbs3/exec.cpp
    Log Message:
    Save and restore the js.exec_path, exec_dir, and exec_file properties

    When invoking a nested JS script, these properties of the "js" object would
    be overwritten and not restored, as discovered/reported by Nightfox when his trivial game script would indirectly execute yesnobar.js, his subsequent use
    of js.exec_dir would point to the wrong location (the "exec" directory, parent of yesnobar.js, and not the direcctory where his game script was located).
    The exec_path and exec_file properties had the same problem as demonstrated
    by a simple test.js placed in (and executed from) a directory other than the "exec" dir:
    function f() {
    print("js.exec_path = " + js.exec_path);
    print("js.exec_dir = " + js.exec_dir);
    print("Js.exec_file = " + js.exec_file);
    }
    f();
    console.yesno("test");
    f();

    This would only trigger the problem when executed from the BBS and whebn the YesNoQuestion text.dat string invokes the "yesnobar" module via EXEC @-code and yesnobar.js exists (in exec or mods dir), superceding yesnobar.bin which does not trigger this issue (not a JavaScript mod).

    ---
    þ 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, December 28, 2025 20:46:08
    https://gitlab.synchro.net/main/sbbs/-/commit/e61b31a5acca617fb4051730
    Modified Files:
    src/sbbs3/exec.cpp
    Log Message:
    select_shell() won't try to write to user base when useron.number == 0

    The same trick used in select_editor()

    ---
    þ 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, January 03, 2026 23:32:29
    https://gitlab.synchro.net/main/sbbs/-/commit/bb8f4440c41d0c3a32fb9d3d
    Modified Files:
    src/sbbs3/exec.cpp
    Log Message:
    sbbs_t::select_editor() now returns true when quit/aborted by user

    and only returns false if there were no external editors available to the
    user.

    Desired behavior by newuser_info.js so we don't print the message "Sorry, no external editors are available to you" just because the user aborted.

    ---
    þ 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, January 10, 2026 03:59:18
    https://gitlab.synchro.net/main/sbbs/-/commit/3edd0f9a329829aabcb97d6c
    Modified Files:
    src/sbbs3/exec.cpp
    Log Message:
    Log (w/debug level msg) non-zero return values from loadable modules

    ---
    þ 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 Wednesday, February 11, 2026 16:23:06
    https://gitlab.synchro.net/main/sbbs/-/commit/6496ebbd8fb69639493f1694
    Modified Files:
    src/sbbs3/exec.cpp
    Log Message:
    Don' t log "Attempt to recursively execute" error for some modules

    Some loadable modules will fallback to internal functions if the module fails to execute - we track that with the optional 'invoked' parameter. Only log an error when exec_mod() is called recursively for the same module when the invoked parameter is null, otherwise just fail (return -1) silently so that the calling function can revert to built-in functions. It should be obvious that's what is happening since the built-in functionality would execute and no
    (e.g. debug-level) log message should be needed.

    ---
    þ 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 Tuesday, February 17, 2026 23:05:00
    https://gitlab.synchro.net/main/sbbs/-/commit/5afc12e5b736a89fde1dfff4
    Modified Files:
    src/sbbs3/exec.cpp
    Log Message:
    Fix the bbs.select_shell() and select_editor() ARS checking/application

    Commit 9d7ada16df7e9f didn't really work because the user pointer we get
    from the User private data doesn't necessarily match the sbbs_t::useron, though it is the same user (the way user_settings.js works today).

    So users were seeing *all* editors and command shells when selecting from user_settings.js, even those they weren't supposed to have access to per ARS.

    ---
    þ 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 Tuesday, March 03, 2026 22:56:22
    https://gitlab.synchro.net/main/sbbs/-/commit/284b5098d617661517a58d8c
    Modified Files:
    src/sbbs3/exec.cpp
    Log Message:
    Enable globally-supported (SCFG->System->Advanced) extra attr codes in PRINT

    Fix issue #1091

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