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