• src/doors/syncduke/build.bat src/doors/syncduke/compat/strings.h src/d

    From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Fri Jun 26 10:07:01 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/5a32f35838daf85bf4e164b6
    Added Files:
    src/doors/syncduke/build.bat src/doors/syncduke/compat/strings.h src/doors/syncduke/vcpkg.json
    Modified Files:
    src/doors/syncduke/.gitignore CMakeLists.txt README.md syncduke_config.c syncduke_door.c syncduke_input.c syncduke_io.c syncduke_plat.c
    Log Message:
    syncduke: Win32/MSVC build (build.bat, vcpkg.json, cross-platform shim I/O)

    Following src/doors/syncdoom, add the files to build SyncDuke for Win32:

    - build.bat + vcpkg.json: VS 2022 configure/build/install, static libjxl
    via classic-mode vcpkg (falls back to sixel/text tiers when absent).
    - CMakeLists.txt: PLATFORM_WIN32 on Windows; guard the GCC-only options
    under NOT MSVC and add MSVC equivalents (/w, CRT/Winsock deprecation
    defines, /FORCE:MULTIPLE for the engine tentative-global + xpdev dup
    symbols, premap.c /Od, ws2_32 + winmm). /FIinttypes.h plus
    _MSC_STDINT_H_/_MSC_INTTYPES_H_ neutralize the vendored msinttypes
    shims that clash with MSVC 2022's native headers.
    - compat/strings.h: satisfies the vendored filesystem.c <strings.h>
    include on MSVC (maps strcasecmp); #include_next passthrough on *nix.
    - Shim sources (door/config/io/input/plat): _WIN32 paths using Winsock
    send/recv/ioctlsocket, QueryPerformanceCounter clocks, Sleep,
    _fullpath/_stricmp, and .CRT$XCU constructors (reading __argc/__argv)
    in place of glibc __attribute__((constructor)). input.c/door.c stay
    xpdev-free so the keymap unit test still links standalone; the *nix
    paths are unchanged.

    Verified: builds under MSVC (Win32 x86 console syncduke.exe) and on Linux.

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

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