From: Christophe R. <cr...@us...> - 2003-11-29 11:25:35
|
Update of /cvsroot/sbcl/sbcl/src/code In directory sc8-pr-cvs1:/tmp/cvs-serv518/src/code Modified Files: fd-stream.lisp Log Message: 0.8.6.13: Merge fix for bidirectional (that is IO, not anything Unicodely) streams (Adam Warner/Gerd Moellmann sbcl-devel/cmucl-imp 2003-11-xx) ... added a test for it; be careful with that standard io syntax :) Index: fd-stream.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/code/fd-stream.lisp,v retrieving revision 1.40 retrieving revision 1.41 diff -u -d -r1.40 -r1.41 --- fd-stream.lisp 13 Oct 2003 11:57:56 -0000 1.40 +++ fd-stream.lisp 29 Nov 2003 11:25:32 -0000 1.41 @@ -214,6 +214,11 @@ (+ (fd-stream-obuf-tail stream) ,size)) (flush-output-buffer stream))) + ,(unless (eq (car buffering) :none) + `(when (> (fd-stream-ibuf-tail stream) + (fd-stream-ibuf-head stream)) + (file-position stream (file-position stream)))) + ,@body (incf (fd-stream-obuf-tail stream) ,size) ,(ecase (car buffering) @@ -305,6 +310,9 @@ (let ((start (or start 0)) (end (or end (length (the (simple-array * (*)) thing))))) (declare (type index start end)) + (when (> (fd-stream-ibuf-tail fd-stream) + (fd-stream-ibuf-head fd-stream)) + (file-position fd-stream (file-position fd-stream))) (let* ((len (fd-stream-obuf-length fd-stream)) (tail (fd-stream-obuf-tail fd-stream)) (space (- len tail)) |