(:constructor #!-high-security-support
make-broadcast-stream
#!+high-security-support
- %make-broadcast-stream (&rest streams)))
+ %make-broadcast-stream (&rest
+ streams))
+ (:copier nil))
;; a list of all the streams we broadcast to
(streams () :type list :read-only t))
(bout #'synonym-bout)
(sout #'synonym-sout)
(misc #'synonym-misc))
- (:constructor make-synonym-stream (symbol)))
+ (:constructor make-synonym-stream (symbol))
+ (:copier nil))
;; This is the symbol, the value of which is the stream we are synonym to.
(symbol nil :type symbol :read-only t))
(def!method print-object ((x synonym-stream) stream)
(:constructor #!-high-security-support
make-two-way-stream
#!+high-security-support
- %make-two-way-stream (input-stream output-stream)))
+ %make-two-way-stream (input-stream output-stream))
+ (:copier nil))
(input-stream (required-argument) :type stream :read-only t)
(output-stream (required-argument) :type stream :read-only t))
(def!method print-object ((x two-way-stream) stream)
(:constructor
#!-high-security-support make-concatenated-stream
#!+high-security-support %make-concatenated-stream
- (&rest streams &aux (current streams))))
+ (&rest streams &aux (current streams)))
+ (:copier nil))
;; The car of this is the stream we are reading from now.
current
;; This is a list of all the streams. We need to remember them so that
(bin #'echo-bin)
(misc #'echo-misc)
(n-bin #'ill-bin))
- (:constructor make-echo-stream (input-stream output-stream)))
+ (:constructor make-echo-stream (input-stream output-stream))
+ (:copier nil))
unread-stuff)
(def!method print-object ((x echo-stream) stream)
(print-unreadable-object (x stream :type t :identity t)
(n-bin #'string-stream-read-n-bytes)
(misc #'string-in-misc))
(:constructor internal-make-string-input-stream
- (string current end)))
+ (string current end))
+ (:copier nil))
(string nil :type simple-string)
(current nil :type index)
(end nil :type index))
(out #'string-ouch)
(sout #'string-sout)
(misc #'string-out-misc))
- (:constructor make-string-output-stream ()))
+ (:constructor make-string-output-stream ())
+ (:copier nil))
;; The string we throw stuff in.
(string (make-string 40) :type simple-string)
;; Index of the next location to use.
(return count))))
(:element-type 'base-char)))
+;;; Return a string of all the characters sent to a stream made by
+;;; MAKE-STRING-OUTPUT-STREAM since the last call to this function.
(defun get-output-stream-string (stream)
- #!+sb-doc
- "Returns a string of all the characters sent to a stream made by
- Make-String-Output-Stream since the last call to this function."
(declare (type string-output-stream stream))
(let* ((length (string-output-stream-index stream))
(result (make-string length)))
(setf (string-output-stream-index stream) 0)
result))
+;;; Dump the characters buffer up in IN-STREAM to OUT-STREAM as
+;;; GET-OUTPUT-STREAM-STRING would return them.
(defun dump-output-stream-string (in-stream out-stream)
- #!+sb-doc
- "Dumps the characters buffer up in the In-Stream to the Out-Stream as
- Get-Output-Stream-String would return them."
(write-string* (string-output-stream-string in-stream) out-stream
0 (string-output-stream-index in-stream))
(setf (string-output-stream-index in-stream) 0))
\f
;;;; fill-pointer streams
-;;; Fill pointer string output streams are not explicitly mentioned in the CLM,
-;;; but they are required for the implementation of With-Output-To-String.
+;;; Fill pointer STRING-OUTPUT-STREAMs are not explicitly mentioned in
+;;; the CLM, but they are required for the implementation of
+;;; WITH-OUTPUT-TO-STRING.
(defstruct (fill-pointer-output-stream
(:include lisp-stream
(out #'fill-pointer-ouch)
(sout #'fill-pointer-sout)
(misc #'fill-pointer-misc))
- (:constructor make-fill-pointer-output-stream (string)))
- ;; The string we throw stuff in.
+ (:constructor make-fill-pointer-output-stream (string))
+ (:copier nil))
+ ;; the string we throw stuff in
string)
(defun fill-pointer-ouch (stream character)
(out #'indenting-out)
(sout #'indenting-sout)
(misc #'indenting-misc))
- (:constructor make-indenting-stream (stream)))
+ (:constructor make-indenting-stream (stream))
+ (:copier nil))
;; the stream we're based on
stream
;; how much we indent on each line
(defstruct (case-frob-stream
(:include lisp-stream
(:misc #'case-frob-misc))
- (:constructor %make-case-frob-stream (target out sout)))
+ (:constructor %make-case-frob-stream (target out sout))
+ (:copier nil))
(target (required-argument) :type stream))
(defun make-case-frob-stream (target kind)
;;;; public interface from "EXTENSIONS" package
(defstruct (stream-command (:constructor make-stream-command
- (name &optional args)))
+ (name &optional args))
+ (:copier nil))
(name nil :type symbol)
(args nil :type list))
(def!method print-object ((obj stream-command) str)