• docs/v322_new.md exec/load/sbbsdefs.js exec/msglist.js src/doors/termg

    From Rob Swindell (on Debian Linux)@1:103/705 to Git commit to main/sbbs/master on Wed Sep 30 19:08:46 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/9c59990042def81b2d6beb76
    Modified Files:
    docs/v322_new.md exec/load/sbbsdefs.js exec/msglist.js src/doors/termgfx/CMakeLists.txt audio_mgr.c src/sbbs3/getmsg.cpp putmsg.cpp sbbsdefs.h
    Log Message:
    Strip terminal commands (APC strings) from displayed message text

    Fixes #1254

    putmsg() strips a fixed list of terminal *queries* from everything it
    displays (so a reply never lands in the user's input), but passed every state-changing sequence through, and made no distinction between a sysop's display file and a message body. SyncTERM's C;S (store file) APC in a
    message therefore wrote a file into the SyncTERM cache of everyone who read
    it, persistently, under any name the poster chose.

    Add a P_NOAPC mode (and the matching sbbsdefs.js constant) under which
    putmsg() strips every APC string (ESC _ ... ESC \), and set it where
    message text is shown: show_msg() for the sub-board and mail readers, and
    the msglist.js lightbar reader. Display files keep full pass-through, since sysops embed fonts and images in them.

    The one shipped consumer that trusted a cached file by name alone,
    termgfx's door audio manager, now plays a client-cached track only when
    the MD5 the C;L listing reports for it matches the door's own copy, as syncterm_cache.js and the zmachine already require; without a door-side
    copy to check against, the client's file is not trusted and the track is uploaded as before. md5.c joins fnv1a.c as a hash-lib source compiled
    straight into termgfx.

    Verified on a scratch terminal server with a post and a mail carrying a
    C;S APC followed by a colored line: both readers show the text, the C++
    reader keeps the SGR color code, and neither emits the APC. Every termgfx
    door rebuilds.

    Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
    --- SBBSecho 3.38-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)