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)))))))