(declare (type stream-socket socket))
(unless (eq (stream-socket-mode socket) :character)
(error 'stream-mode-error :stream socket :socket socket :expected-mode :character))
(declare (type stream-socket socket))
(unless (eq (stream-socket-mode socket) :character)
(error 'stream-mode-error :stream socket :socket socket :expected-mode :character))
((nil) (return-from gray-stream-read-char-no-hang :eof))
((:wait) (return-from gray-stream-read-char-no-hang nil)))
(with-slots (char-buffer char-read-pos) socket
((nil) (return-from gray-stream-read-char-no-hang :eof))
((:wait) (return-from gray-stream-read-char-no-hang nil)))
(with-slots (char-buffer char-read-pos) socket