From: Rudi S. <ru...@us...> - 2005-03-07 17:56:21
|
Update of /cvsroot/sbcl/sbcl/src/code In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31254/src/code Modified Files: stream.lisp Log Message: 0.8.20.9 Fix sb-simple-streams; all tests pass again: * Test that clear-input can be called without errors but don't make assumptions about the stream state afterwards * Fix some LISTEN failures (simple-stream encapsulated in a two-way stream, incorrect assumptions about return value of stream-misc-dispatch :listen) Index: stream.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/code/stream.lisp,v retrieving revision 1.72 retrieving revision 1.73 diff -u -d -r1.72 -r1.73 --- stream.lisp 3 Mar 2005 17:15:21 -0000 1.72 +++ stream.lisp 7 Mar 2005 17:56:10 -0000 1.73 @@ -298,8 +298,11 @@ (defun ansi-stream-listen (stream) (or (/= (the fixnum (ansi-stream-in-index stream)) +ansi-stream-in-buffer-length+) - ;; Test for T explicitly since misc methods return :EOF sometimes. - (eq (funcall (ansi-stream-misc stream) stream :listen) t))) + ;; Handle :EOF return from misc methods specially + (let ((result (funcall (ansi-stream-misc stream) stream :listen))) + (if (eq result :eof) + nil + result)))) (defun listen (&optional (stream *standard-input*)) (let ((stream (in-synonym-of stream))) @@ -827,7 +830,7 @@ (or (/= (the fixnum (ansi-stream-in-index in)) +ansi-stream-in-buffer-length+) (funcall (ansi-stream-misc in) in :listen)) - (stream-listen in))) + (listen in))) ((:finish-output :force-output :clear-output) (if out-ansi-stream-p (funcall (ansi-stream-misc out) out operation arg1 arg2) |