• exec/automsg.js batchxfer.js exec/load/meme_chooser.js user_info_promp

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Wed Sep 30 02:44:22 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/720abef4d152f35e71760bc2
    Modified Files:
    exec/automsg.js batchxfer.js exec/load/meme_chooser.js user_info_prompts.js exec/sbbsimsg.js text_sec.js viewimsgs.js src/sbbs3/atcodes.cpp bat_xfer.cpp download.cpp email.cpp getmsg.cpp getstr.cpp js_bbs.cpp listfile.cpp netmail.cpp qwk.cpp readmsgs.cpp sbbs.h str.cpp upload.cpp
    Log Message:
    Quit key: more prompts, menu files, and high-bit Quit letters

    More prompts show and accept the resolved Quit key: the message vote
    prompt and the auto-message prompt (both displayed the translated Quit
    mnemonic but accepted only Q), the default-protocol prompt (user_info_prompts.js) and the meme chooser.

    Command keys are now declared before a prompt's menu file is displayed,
    so an @QUITCHAR@ in a custom menu file shows the key the prompt accepts: xfer_prot_menu() declares the protocol keys, plus the caller's extra keys
    (new optional argument), before displaying the protocol menu, and
    batchxfer.js and text_sec.js set console.cmd_keys before their menus.

    Scripts that are load()ed rather than executed as modules (viewimsgs.js, sbbsimsg.js, the libraries above) are not covered by the terminal
    server's per-script reset, so they clear console.cmd_keys themselves; text_sec.js clears it on leaving a section, so its section prompt always
    uses the same Quit key.

    The "~@Quit@" mnemonic compared the Quit key as a signed char against an unsigned first letter, which showed the explicit "(X)" key for any Quit
    word starting with a byte of 0x80 or above. getnum() no longer echoes a
    NUL when aborted while there is no Quit key. (#1242)

    Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

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