BBS: TELESC.NET.BR Assunto: src/conio/cg_events.m wl_events.c De: Deuc¨ Data: Tue, 5 May 2026 15:06:42 -0700 ----------------------------------------------------------- https://gitlab.synchro.net/main/sbbs/-/commit/bf6fbb31005abddc97b4e4a8 Modified Files: src/conio/cg_events.m wl_events.c Log Message: conio: route keyboard input through codepage on Quartz + Wayland ATASCII / PETSCII / Prestel / BEEB rely on the active codepage to remap typed Unicode codepoints to backend bytes (e.g. ATASCII maps U+000D Return -> 0x9B EOL, U+0008 BS -> 0x7E, U+0009 Tab -> 0x7F, U+007F DEL -> 0xFE). X11 / SDL / Win32 / curses already pipe their typed-char paths through cpchar_from_unicode_cpoint(); Quartz had no such call at all and Wayland filtered out everything below 0x20 plus 0x7F, so on those backends Return-in-ATASCII (and friends) went out as raw ASCII and the remote BBS never saw its EOL. cg_events.m: include utf8_codepages.h and consolidate the printable / CR-Tab-Esc / Backspace branches in keyDown: into a single cpchar-based path. The 0x7F -> 0x08 Backspace remap moves *before* cpchar so the codepage gets to apply its own BS mapping. Ctrl combos still go through their dedicated scancode-table-first path. wl_events.c: relax the xkb char gate from "utf32 >= 0x20 && utf32 != 0x7f" to "utf32 != 0". Special keys (arrows, F-keys) still return 0 from xkb_state_key_get_utf32 and fall through to the evdev scancode table cleanly. Co-Authored-By: Claude Opus 4.7 (1M context)n --- mSynchronetn hgVertrauen n hHome of Synchronet n gh[vert/cvs/bbs].synchro.net ----------------------------------------------------------- [Voltar]