Page 156 Table of Contents Index Page 158
Chapters
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
A, B, C, D, E



CHAPTER 16. OUTPUT RECORDING

The stream argument is not evaluated, and must be a symbol that is bound to an output recording
stream. If stream is t, *standard-output* is used. Unlike facilities such as with-output-to-
string
, stream must be an actual stream, but no output will be done to it. body may have zero
or more declarations as its first forms.

with-output-to-output-record must be implemented by expanding into a call to invoke-
with-output-to-output-record
supplying a function that executes body as the continuation
argument to invoke-with-output-to-output-record. The exact behavior of this macro is
described under invoke-with-output-to-output-record.

=> invoke-with-output-to-output-record stream continuation record-type &rest init-args &key
[Generic Function]
This is similar to invoke-with-new-output-record except that the new output record is not
inserted into the output record hierarchy, and the text cursor position of stream is initially
bound to (0;0). That is, when invoke-with-output-to-output-record is used, no drawing
on the stream occurs and nothing is put into the stream's normal output history. The function
continuation is called, and any output it does to stream is captured in the output record.

continuation is a function of two arguments, the stream and the output record; it has dynamic
extent. record-type is the type of output record to create. init-args are CLOS initialization
arguments that are passed to make-instance when the new output record is created.

invoke-with-output-to-output-record returns the output record it creates.

All output recording streams must implement a method for invoke-with-output-to-output-
record
.

=> make-design-from-output-record record [Generic Function]
Makes a design that replays the output record record when drawn via draw-design. If record is
changed after the design is made, the consequences are unspecified. Applying a transformation
to the design and calling draw-design on the new design is equivalent to establishing the same
transformation before creating the output record.

It is permissible for implementations to support this only for those output records that correspond
to the geometric object classes (for example, the output records created by draw-line* and
draw-ellipse*).


Page 156 Table of Contents Index Page 158
Chapters
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
A, B, C, D, E