fix: guards on resize handler and render loop, O_RDONLY for /dev/tty

This commit is contained in:
2026-05-14 14:10:57 -04:00
parent 55166fc9ff
commit d71ccb95c6

View File

@@ -967,7 +967,12 @@ Event handlers + daemon I/O + main loop.
(when cl-tty.input::*terminal-resized-p* (when cl-tty.input::*terminal-resized-p*
(setf cl-tty.input::*terminal-resized-p* nil) (setf cl-tty.input::*terminal-resized-p* nil)
(multiple-value-setq (w h) (cl-tty.backend:backend-size be)) (multiple-value-setq (w h) (cl-tty.backend:backend-size be))
(setq w (or (and (numberp w) (> w 0) w) 80)
h (or (and (numberp h) (> h 0) h) 24))
(setf (st :dirty) (list t t t)))) (setf (st :dirty) (list t t t))))
;; Guard w and h before render (resize or other code may have set them to nil)
(setq w (or (and (numberp w) (> w 0) w) 80)
h (or (and (numberp h) (> h 0) h) 24))
(when (or (first (st :dirty)) (second (st :dirty)) (third (st :dirty))) (when (or (first (st :dirty)) (second (st :dirty)) (third (st :dirty)))
(cl-tty.backend:backend-clear be) (cl-tty.backend:backend-clear be)
(view-status be w h) (view-status be w h)