• ctrl/modopts.ini docs/v322_new.md exec/load/shell_lib.js exec/xtrn_sec

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Thursday, October 22, 2026 10:11:17
    https://gitlab.synchro.net/main/sbbs/-/commit/96736a36318291b63969d594
    Modified Files:
    ctrl/modopts.ini docs/v322_new.md exec/load/shell_lib.js exec/xtrn_sec.js
    Log Message:
    Add modopts.ini hooks evaluated upon entering BBS sections

    shell_lib.js's menu_loop() now evaluates the [shell] main_enter or
    file_enter expression from modopts.ini when the current menu's
    node_action changes to NODE_MAIN or NODE_XFER. Keying on node_action,
    rather than on the menu object, keeps a hop between two main-area menus
    (as obv-2, major, and spitfire have) from re-triggering it, and the
    initial menu after logon gets no event, so it doesn't step on anything
    the logon module just did. Every shell built on shell_lib.js gets this.

    xtrn_sec.js gains [xtrn_sec] eval_first, matching the name logon.js
    uses, evaluated when the external programs section is entered.

    The motivating use is terminal audio, e.g.:
    main_enter = bbs.atcode("SOUND:main.ogg")

    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

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