Fix termios-cc API for SBCL 2.5.x, demo exits cleanly if raw mode fails
make-raw-termios (input.lisp:66-67): termios-cc accessor in SBCL 2.5.x takes one arg (the struct) and returns the cc array. Use (aref ...) to set individual control characters. Old code used 3-arg setf form that no longer works and produced style warnings. demo.lisp: Now exits with a clear error message when raw mode can't be established, rather than running in broken pipe-safe mode where escape sequences are echoed and input is line-buffered.
This commit is contained in:
@@ -63,8 +63,9 @@
|
||||
(clear-flag (sb-posix:termios-lflag termios)
|
||||
(logior sb-posix:icanon sb-posix:echo
|
||||
sb-posix:isig sb-posix:iexten)))
|
||||
(setf (sb-posix:termios-cc termios sb-posix:vmin) 1)
|
||||
(setf (sb-posix:termios-cc termios sb-posix:vtime) 0)
|
||||
(let ((cc-array (sb-posix:termios-cc termios)))
|
||||
(setf (aref cc-array sb-posix:vmin) 1)
|
||||
(setf (aref cc-array sb-posix:vtime) 0))
|
||||
termios))
|
||||
|
||||
(defun set-raw-mode ()
|
||||
|
||||
Reference in New Issue
Block a user