(setf (stream-open-p stream) nil)
t)
-(setf (fdefinition 'close) #'pcl-close)
+(progn
+ ;; KLUDGE: Get in a call to PCL-CLOSE with a string-output-stream before
+ ;; setting it as CLOSE. Otherwise using NAMED-LAMBDAs as DFUNs causes a
+ ;; vicious metacircle from FORMAT NIL somewhere in the compiler. This is
+ ;; enough to get the dispatch settled down before we need it.
+ (pcl-close (make-string-output-stream))
+ (setf (fdefinition 'close) #'pcl-close))
\f
(let ()
(fmakunbound 'input-stream-p)
(error 'type-error :datum non-stream :expected-type 'stream))
(defgeneric stream-read-sequence (stream seq &optional start end)
+ #+sb-doc
(:documentation
"This is like CL:READ-SEQUENCE, but for Gray streams."))
T)))
(defgeneric stream-write-sequence (stream seq &optional start end)
+ #+sb-doc
(:documentation
"This is like CL:WRITE-SEQUENCE, but for Gray streams."))
(basic-io-type-stream-write-sequence stream seq start end
#'stream-write-byte))
+(defgeneric stream-file-position (stream &optional position-spec)
+ #+sb-doc
+ (:documentation
+ "Used by FILE-POSITION. Returns or changes the current position within STREAM."))
+
+(defmethod stream-file-position ((stream ansi-stream) &optional position-spec)
+ (ansi-stream-file-position stream position-spec))
+
+(defmethod stream-file-position ((stream t) &optional position-spec)
+ (declare (ignore stream position-spec))
+ nil)
+
\f
;;; This is not in the Gray stream proposal, so it is left here
;;; as example code.