• src/conio/utf8_codepages.c utf8_codepages.h src/syncterm/CMakeLists.tx

    From Deucе@VERT to Git commit to main/sbbs/master on Thu Oct 29 16:34:13 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/6c907c0ce9b91d829adc641b
    Modified Files:
    src/conio/utf8_codepages.c utf8_codepages.h src/syncterm/CMakeLists.txt bbs_cache.c bbs_cache.h bbs_cache_test.c
    Log Message:
    Decode legacy BBS cache names as CP437 through conio

    Directory entry names in SyncTERM v1.10b are CP437, not UTF-8. Map each byte through conio before applying the Unicode 18 canonical case fold, then use conio to encode the normalized hash input as UTF-8. This preserves v2-compatible keys for equivalent Unicode names without rejecting or misreading extended CP437 bytes.

    Expose conio existing UTF-8 scalar encoder and remove the cache helper dependency on libencode UTF-8 routines. Replace UTF-8 input vectors with CP437 regression cases, cover all nonzero input bytes, and test accented case pairs, box drawing, and CP437 byte sequences that also happen to be valid UTF-8.

    Verified native CMake and GNUmake release builds, cache regression tests, MinGW compilation, and comparison against v2 canonical keys for 255 single bytes, 65025 pairs, and 10000 mixed CP437 names.

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