https://gitlab.synchro.net/main/sbbs/-/commit/3db074e5cd440b68ab5fefc9
Modified Files:
src/doors/syncduke/syncduke.h syncduke_input.c syncduke_io.c
Log Message:
syncduke: move onto termgfx keymode
Replaces the door's own copy of the terminal key-mode negotiation with termgfx/keymode.h (cf67bccb2a, thrown-29-throw): the evdev/kitty enable and restore sequences, the evdev-wins precedence, the enable-time settle
window, the kitty CSI-u parameter decoder, the 88-entry evdev->ASCII
table and the modifier classifier. All of it was duplicated, byte for
byte, in SyncDOOM, SyncConquer and SyncRetro.
The key mode's state now lives in one termgfx_keymode_t owned by syncduke_input.c (which parses the CTDA and CSI?u replies) and reached
from syncduke_io.c's terminal-restore path via syncduke_keymode(). That
restore is a single termgfx_keymode_restore() call on both the Winsock
and POSIX branches, emitting only what was actually enabled, instead of
two hand-guarded literal writes on each.
syncduke_kitty_active() and syncduke_evdev_active() are kept as the
door's public predicates -- the input layer branches on them in a dozen
places to choose native key-up over the byte path -- but they now read
the shared state.
No change to the bytes on the wire, the settle window's 500ms, Duke's
key -> Build-scancode map, or the modifier keycodes recognized.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net