built-in shelf
#main-output
is one of the built-in program output streams.
#main-output
identifies the output destination, described by the "-of" or "-aof" directive on the OmniMark program's command line. Where there isn't an "-of" or "-aof" on the command line, then #main-output
identifies the same destination as #process-output
(that is, "standard output").
When #main-output
and #process-output
identify the same destination, the modifiers set on #main-output
are applied to the stream attachment. For example, if #main-output
is written to in text-mode and #process-output
is written to in binary-mode, then the stream attachment will be written to in text-mode. If both of these streams identify the same destination, and one stream is buffered and the other unbuffered, OmniMark will issue a run-time warning and the modifiers set on #main-output
will be applied to the stream attachment.
#main-output
is the default output (#current-output
) in an OmniMark program.
The "declare #main-output has" declarations can be used to change some of the characteristics of the #main-output
stream.
#main-output
was identified by the name output
in earlier releases of OmniMark. output
can still be used as a synonym for #main-output
(except in contexts where you have declared a shelf, argument, or function with the name output
), but its use is deprecated. Using #main-output
produces programs that are easier to understand.
By default, the #main-output
stream in any program that uses referents is treated as if it were opened with referents-allowed
and referents-displayed
.