20.2 Indented Output

indenting-output  (stream indentation &key (move-cursor t)) &body body [Macro]

Binds stream to a stream that inserts whitespace at the beginning of each line of output produced by body, and then writes the indented output to the stream that is the original value of stream. [annotate]

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. body may have zero or more declarations as its first forms. [annotate]

indentation specifies how much whitespace should be inserted at the beginning of each line. It is specified in the same way as the :x-spacing option to formatting-table. [annotate]

If the boolean move-cursor is true (the default), CLIM moves the cursor to the end of the table. [annotate]

Programmers using indenting-output should begin the body with a call to fresh-line (or some equivalent) to position the stream to the initial indentation. [annotate]

Implementation note: Some CLIM implementations restrict the use of indenting-output and filling-output such that a call to indenting-output should appear outside of a call to filling-output. Implementations are encouraged to relax this restriction if the behavior is well-defined, but uses of indenting-output inside of filling-output may not be portable. [annotate]


Note: Would it be better to tighten this up and define these edge cases? [edit]-- Matt Seddon 2022-11-11 08:26Z