https://gitlab.synchro.net/main/sbbs/-/commit/d3d122400e99f202e3c54638
Added Files:
src/doors/clans-src/docs/utf8.txt src/doors/clans-src/src/tests/test_u8cp437.c src/doors/clans-src/src/u8cp437.c u8cp437.h
Modified Files:
src/doors/clans-src/devkit/clandev.txt src/doors/clans-src/docs/todo.txt src/doors/clans-src/src/GNUmakefile ecomp.c langcomp.c makenpc.c makepak.c mclass.c mcomp.c mitems.c mspells.c src/doors/clans-src/src/tests/GNUmakefile
Log Message:
Add UTF-8 source file support to all devkit compilers and makepak
Devkit authors can now write source files (.evt, .txt, .lst, etc.) in UTF-8 instead of CP437 by naming them with `.u8.` before the final extension (e.g., `myquest.u8.evt`). The compilers detect the convention and convert each line from UTF-8 to CP437 at compile time; output is byte-identical to native CP437 input. Smart quotes and other unmapped codepoints produce clear errors with file name and line number.
New shared module: u8cp437.c/h with u8_fopen() and u8_fgets() wrappers.
39 unit tests cover the conversion table, fopen detection, fgets integration, and error paths.
Modified tools: langcomp, mcomp, mitems, mspells, mclass, ecomp, makenpc, makepak. Build verified clean (zero warnings) with all 271 unit tests and
364 integration tests passing.
Documentation: new section [0.3] in clandev.txt, cross-references in all 8
tool sections, complete 176-entry mapping table in docs/utf8.txt, and todo entries [1.9]-[1.11].
Co-Authored-By: Claude Opus 4.6 <
noreply@anthropic.com>
---
■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net