X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ffd-stream.lisp;h=79911fc45a2948e5f2c4f7c7d9497e6701219db4;hb=b429c5c0557ed790e84dae4d6c35e06ab1a14416;hp=020840c7861758bc58257a40b1f5bee760feaecb;hpb=8ad30632f7a37735a05cdf70d0904fa33616f6b0;p=sbcl.git diff --git a/src/code/fd-stream.lisp b/src/code/fd-stream.lisp index 020840c..79911fc 100644 --- a/src/code/fd-stream.lisp +++ b/src/code/fd-stream.lisp @@ -1485,6 +1485,8 @@ (setf (aref buffer (+ start total-copied)) (vector-pop instead)) (incf total-copied) (when (= requested total-copied) + (when (= (fill-pointer instead) 0) + (setf (fd-stream-listen stream) nil)) (return-from ,in-function total-copied))) (do () (nil) @@ -1925,8 +1927,7 @@ (do-listen))) (:unread (decf (buffer-head (fd-stream-ibuf fd-stream)) - (fd-stream-character-size fd-stream arg1)) - (setf (fd-stream-listen fd-stream) t)) + (fd-stream-character-size fd-stream arg1))) (:close ;; Drop input buffers (setf (ansi-stream-in-index fd-stream) +ansi-stream-in-buffer-length+