• docs/v322_new.md exec/load/filecontents_lib.js exec/webfileindex.ssjs

    From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Sunday, September 20, 2026 12:43:16
    https://gitlab.synchro.net/main/sbbs/-/commit/9e9b6659281839c23872e22c
    Modified Files:
    docs/v322_new.md exec/load/filecontents_lib.js exec/webfileindex.ssjs Log Message:
    View self-extracting .exe archives in the web file index

    libarchive already reads the Zip or 7-Zip payload inside an SFX stub --
    it locates the archive's signature rather than insisting the file start
    with one -- so nothing but an extension gate stood in the way. Verified against both a 7-Zip SFX and an .exe with a Zip appended; a plain
    program still fails to extract and is stored as the negative verdict it
    is.

    webfileindex.ssjs kept its own list of archive extensions, a shorter one
    than the library's, so 'arj', 'zoo', 'tar', 'gz' and 'bz2' were listable
    but never offered. It now asks contents.is_archive(), leaving one list
    to maintain, and 'exe' is added to it.

    extract_external(): an empty lsarContents with a non-zero lsarError is a failure rather than an empty archive. lsar recognizes a self-extracting
    Zip whose stub offsets it won't follow and says exactly that; storing it
    as a zero-entry listing misreported the file (043587351c9).

    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

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