Subj : src/doors/syncdrive/build.batdocs/v322_new.md src/doors/build.bat src/ To : Git commit to main/sbbs/master From : Rob Swindell (on Windows 11) Date : Mon Sep 21 2026 00:40:24 https://gitlab.synchro.net/main/sbbs/-/commit/c489466523386d8df663485e Added Files: src/doors/syncdrive/build.bat Modified Files: docs/v322_new.md src/doors/build.bat src/doors/syncdrive/.gitignore CLAUDE.md CMakeLists.txt DESIGN.md README.md src/doors/syncdrive/door/host_term.c scores_lock.c src/doors/syncdrive/tests/CMakeLists.txt Log Message: syncdrive: the Win32 / MSVC build build.bat configures CMake for Visual Studio 2022, builds Win32 Release, runs the unit tests and leaves the binary in build-msvc\Release; src/doors/build.bat gains syncdrive as a target. Win32 (x86) only, for the reason the sibling doors are: one Win32 binary serves a Win32 and a Win64 Synchronet host alike. Two spots in our own code stood between the door and MSVC: host_term.c reached strcasecmp through , and scores_lock.c opened the lock file through /. Both now go through the xpdev wrappers -- stricmp() from genwrap.h, filewrap.h with O_BINARY and DEFFILEMODE, which is 0666 on *nix as the literal 0666 was. The vendored tdport/ engine needed nothing. libsndfile is a prerequisite for sound here rather than an optional tier: the PC-speaker PCM is generated in-process, but termgfx streams it to SyncTERM as Ogg/Opus, and without libsndfile that encoder is a stub and termgfx_stream_chunk_closed() drops every chunk -- a door that runs silent with no other symptom. build.bat points CMAKE_PREFIX_PATH at the classic vcpkg prefix and warns when it is absent; the configure warns too. No libjxl: this door serves the sixel tier only. The high-score lock test needs a second process contending for the lock and uses fork(), so it stays *nix only, and the Windows build does not cover scores_lock.c; the five pure tests run on both platforms. Co-Authored-By: Claude Opus 5 (1M context) --- SBBSecho 3.37-Linux * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705) .