fix: restore ioctl block in simple.lisp (was lost in edit)

This commit is contained in:
2026-05-14 14:25:23 -04:00
parent 31f864471c
commit ce7af16b13

View File

@@ -40,9 +40,22 @@
(values a nil))))))) (values a nil)))))))
(when (and cols rows (> cols 0) (> rows 0)) (when (and cols rows (> cols 0) (> rows 0))
(values cols rows))) (values cols rows)))
;; ioctl on stdout fd — fast, correct after SIGWINCH at runtime.
(multiple-value-bind (cols rows) (multiple-value-bind (cols rows)
(when (and rows cols (> rows 0) (> cols 0)) (ignore-errors
(values cols rows)))))) (let* ((+tiocgwinsz+ 21523)
(winsize (sb-alien:make-alien sb-alien:unsigned-short 4)))
(unwind-protect
(progn
(sb-unix:unix-ioctl (sb-sys:fd-stream-fd
(backend-output-stream b))
+tiocgwinsz+
(sb-alien:alien-sap winsize))
(values (sb-alien:deref winsize 1)
(sb-alien:deref winsize 0)))
(sb-alien:free-alien winsize))))
(when (and cols rows (> cols 0) (> rows 0))
(values cols rows)))
(ignore-errors (ignore-errors
(let ((tty-fd (sb-unix:unix-open "/dev/tty" 0 0))) ; O_RDONLY (let ((tty-fd (sb-unix:unix-open "/dev/tty" 0 0))) ; O_RDONLY
(when (and tty-fd (numberp tty-fd) (> tty-fd 0)) (when (and tty-fd (numberp tty-fd) (> tty-fd 0))