• src/doors/syncconquer/CLAUDE.mdsrc/doors/syncconquer/door/door_io.c

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Wed Jul 8 02:41:47 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/4fcc3feb38616c49500a2f71
    Added Files:
    src/doors/syncconquer/CLAUDE.md
    Modified Files:
    src/doors/syncconquer/door/door_io.c
    Log Message:
    syncalert: use xpdev genwrap stricmp; add xpdev-first CLAUDE.md directive

    Replace the door's hand-rolled string-case portability with xpdev's genwrap wrappers, matching syncduke/syncdoom: door_is_door32_path()'s
    `#ifdef _WIN32 _stricmp : strcasecmp` becomes a portable stricmp(), and door_term_is_utf8()'s manual char-by-char case folding of the terminal.ini "chars" key becomes strnicmp(). The door already links xpdev, so this adds
    no dependency.

    Adds src/doors/syncconquer/CLAUDE.md: prefer xpdev wherever practical
    (strings, sockets/MP, threads, files), follow SyncDuke/SyncDOOM as the reference for good practice, and fix a sibling rather than copy it if its practice is worse than xpdev's own facility -- plus the usual our-code vs vendored (vanilla/) style split.

    The socket layer still hand-rolls its Windows/POSIX split; converting it to sockwrap is a larger, separate pass (its I/O also branches socket-vs-tty on POSIX, so it isn't a clean swap), noted inline and best done with the M3 multiplayer work that builds on sockwrap.

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

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