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.