diff --git a/code/stream.lisp b/code/stream.lisp index 2e7b40739b1963f15dd57f54d6ebe4e2505d4c10..6f6d87e4a446331577fc2bc31975e4a3454c7789 100644 --- a/code/stream.lisp +++ b/code/stream.lisp @@ -5,7 +5,7 @@ ;;; Carnegie Mellon University, and has been placed in the public domain. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/stream.lisp,v 1.53 2002/10/07 14:31:05 toy Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/stream.lisp,v 1.54 2002/10/07 17:49:46 toy Exp $") ;;; ;;; ********************************************************************** ;;; @@ -1753,6 +1753,9 @@ POSITION: an INTEGER greater than or equal to zero, and less than or (declare (type (or null (integer 0 *)) end)) (declare (values (integer 0 *))) + (when (not (cl::lisp-stream-p stream)) + (return-from read-sequence (stream-read-sequence seq stream start end))) + (let ((end (or end (length seq)))) (declare (type (integer 0 *) start end)) @@ -2060,6 +2063,10 @@ SEQ: a proper SEQUENCE (declare (type (integer 0 *) start)) ; a list does not have a limit (declare (type (or null (integer 0 *)) end)) (declare (values (or list vector))) + + (when (not (cl::lisp-stream-p stream)) + (return-from write-sequence (stream-write-sequence seq stream start end))) + (let ((end (or end (length seq)))) (declare (type (integer 0 *) start end)) @@ -2201,14 +2208,13 @@ SEQ: a proper SEQUENCE ;; (declare (type (simple-array (or unsigned-byte signed-byte) (*)) s)) ;; (declare (type (simple-array * (*)) s)) (declare (type (or (simple-array (unsigned-byte 8) (*)) - #+:signed-array (simple-array (signed-byte 8) (*)) + (simple-array (signed-byte 8) (*)) (simple-array (unsigned-byte 16) (*)) - #+:signed-array (simple-array (signed-byte 16) (*)) + (simple-array (signed-byte 16) (*)) (simple-array (unsigned-byte 32) (*)) - #+:signed-array (simple-array (signed-byte 32) (*)) + (simple-array (signed-byte 32) (*)) (simple-array (unsigned-byte *) (*)) - (simple-array (signed-byte *) (*)) - ) + (simple-array (signed-byte *) (*))) seq)) (when (not (subtypep (stream-element-type stream) 'integer)) (error 'type-error @@ -2217,11 +2223,10 @@ SEQ: a proper SEQUENCE :format-control "Trying to output binary data to a text stream.")) (cond ((system:fd-stream-p stream) (flet ((write-n-x8-bytes (stream data start end byte-size) - (let* ((x8-mult (truncate byte-size 8)) - (numbytes (* (- end start) x8-mult)) - ) - (system:output-raw-bytes stream data start numbytes))) - ) + (let ((x8-mult (truncate byte-size 8))) + (system:output-raw-bytes stream data + (* x8-mult start) + (* x8-mult end))))) (with-array-data ((data seq) (start start) (end end))