built-in shelf
One of the built-in input sources.
#process-input
identifies the default input source that the system supplies to the OmniMark program. This corresponds with what is usually referred to as "standard input" ("stdin") on UNIX systems.
When the "-term" command-line option is given, #process-input
is unavailable to the program; attempts to access it will generate an error.
#process-input
explicitly identifies a source of input, and can be used as the scanning source in:
do scan
repeat scan
string source
function of a do sgml-parse
scan
source of a do sgml-parse
submit
The use of #process-input
is subject to the following constraints:
do scan
, repeat scan
, or submit
. If an attempt is made to use it more than once, an error will be generated.
#process-input
is usually read incrementally, meaning that the contents of the stream are not all buffered in memory before processing begins. In some situations, however, this is not the case. If you use #process-input
as a string expression (for example: length of #process-input
), as a passed "value" argument in a function, or as part of a concatenated string (for example: set this-string to str-var || #process-input
), the entire contents of #process-input
will be read into memory.
Note that #process-input
represents a stream of data that is being dynamically generated by a process outside your program (such as another application or the keyboard). Any attempt to read #process-input as a whole will block until the end of the input is signaled by the outside process (such as by the user typing Ctrl-D on the keyboard). In most cases you will want to make sure you read #process-input
incrementally.