X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcode%2Ffd-stream.lisp;h=89bc127d3bb38512a79269d2b6d4f1edf111d6cb;hb=5cd0fc84df83d1b3321b7fc969843207721de429;hp=9dd5f067721ddd5f9f716cf88beab3169050e1f1;hpb=902ac256ae170e23dc5e69788e6f2c96ee8b0a3d;p=sbcl.git diff --git a/src/code/fd-stream.lisp b/src/code/fd-stream.lisp index 9dd5f06..89bc127 100644 --- a/src/code/fd-stream.lisp +++ b/src/code/fd-stream.lisp @@ -1177,12 +1177,14 @@ nil)) (setf (fd-stream-ibuf-head stream) head) (when (and decode-break-reason - (= head head-start) - (stream-decoding-error-and-handle - stream decode-break-reason)) - (if eof-error-p - (error 'end-of-file :stream stream) - (return-from ,in-function total-copied))) + (= head head-start)) + (when (stream-decoding-error-and-handle + stream decode-break-reason) + (if eof-error-p + (error 'end-of-file :stream stream) + (return-from ,in-function total-copied))) + (setf head (fd-stream-ibuf-head stream)) + (setf tail (fd-stream-ibuf-tail stream))) (when (plusp total-copied) (return-from ,in-function total-copied))) (setf (fd-stream-ibuf-head stream) head)