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]