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.
--- SBBSecho 3.38-Linux
* Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)