From 36e7d51fce7d5b95c15feeff91e2a6a17552e570 Mon Sep 17 00:00:00 2001 From: Amr Gharbeia Date: Wed, 13 May 2026 16:25:37 -0400 Subject: [PATCH] fix: add missing keyword clause in printable branch of on-key The revert removed the (keyword ...) clause from the typecase in on-key's printable branch. Keyword symbols from the main loop (:a, :h, etc.) fell through to (t nil), making all character input silently ignored. Typing and sending now works correctly. --- lisp/channel-tui-main.lisp | 10 ++++++---- org/channel-tui-main.org | 10 ++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/lisp/channel-tui-main.lisp b/lisp/channel-tui-main.lisp index a7b84a2..f79f914 100644 --- a/lisp/channel-tui-main.lisp +++ b/lisp/channel-tui-main.lisp @@ -564,10 +564,12 @@ (setf (st :dirty) (list nil t nil))) ;; Printable (t - (let ((chr (typecase ch - (character ch) - (integer (code-char ch)) - (t nil)))) + (let ((chr (typecase ch + (character ch) + ((integer 32 126) (code-char ch)) + (keyword (let ((s (string ch))) + (and (= (length s) 1) (char-downcase (char s 0))))) + (t nil)))) (when (and chr (graphic-char-p chr)) (input-insert-char chr) (setf (st :dirty) (list nil nil t))))))) diff --git a/org/channel-tui-main.org b/org/channel-tui-main.org index 38e013e..d1993f9 100644 --- a/org/channel-tui-main.org +++ b/org/channel-tui-main.org @@ -598,10 +598,12 @@ Event handlers + daemon I/O + main loop. (setf (st :dirty) (list nil t nil))) ;; Printable (t - (let ((chr (typecase ch - (character ch) - (integer (code-char ch)) - (t nil)))) + (let ((chr (typecase ch + (character ch) + ((integer 32 126) (code-char ch)) + (keyword (let ((s (string ch))) + (and (= (length s) 1) (char-downcase (char s 0))))) + (t nil)))) (when (and chr (graphic-char-p chr)) (input-insert-char chr) (setf (st :dirty) (list nil nil t)))))))