sb-sprof.lisp: Remove trailing white-spaces.
[sbcl.git] / contrib / sb-simple-streams / impl.lisp
index 014c852..3512edf 100644 (file)
                     (index (or start 0) (1+ index))
                     (end (or end (* (length vector) (vector-elt-width vector))))
                     (endian-swap (endian-swap-value vector endian-swap))
-                    (byte (read-byte-internal encap nil nil t)
-                          (read-byte-internal encap nil nil nil)))
-                   ((or (null byte) (>= index end)) index)
-                (setf (bref vector (logxor index endian-swap)) byte))))))
+                    (flag t nil))
+                   ((>= index end) index)
+                (let ((byte (read-byte-internal encap nil nil flag)))
+                  (unless byte
+                    (return index))
+                  (setf (bref vector (logxor index endian-swap)) byte)))))))
     ((or ansi-stream fundamental-stream)
      (unless (typep vector '(or string
                              (simple-array (signed-byte 8) (*))
            (remf options :input-handle)
            (remf options :output-handle)
            (make-instance class :lisp-stream
-                          (apply #'open-fd-stream filespec options))))))
+                          (apply #'open-fd-stream filespec options)))
+          (t (error "Don't know how to handle the stream class ~A"
+                    (etypecase class
+                      (symbol (find-class class t))
+                      (class class)))))))
 
 
 (declaim (inline read-byte read-char read-char-no-hang unread-char))