20.3 Filled Output

filling-output  (stream &key fill-width break-characters after-line-break after-line-break-initially) &body body [Macro]

Binds stream to a stream that inserts line breaks into the textual output written to it (by such functions as write-char and write-string) so that the output is usually no wider then fill-width. The filled output is then written on the original stream. [annotate]

The stream argument is not evaluated, and must be a symbol that is bound to a stream. If stream is t, *standard-output* is used. body may have zero or more declarations as its first forms. [annotate]

fill-width specifies the width of filled lines, and defaults to 80 characters. It is specified the same way as the :x-spacing option for formatting-table. [annotate]

"Words" are separated by the characters specified in the list break-characters. When a line is broken to prevent wrapping past the end of a line, the line break is made at one of these separators. That is, filling-output does not split "words" across lines, so it might produce output wider than fill-width. [annotate]

after-line-break specifies a string to be sent to stream after line breaks; the string appears at the beginning of each new line. The string must not be wider than fill-width. [annotate]

If the boolean after-line-break-initially is true, then the after-line-break text is to be written to stream before executing body, that is, at the beginning of the first line. The default is false. [annotate]