| Syntax 
   source? #process-input
 
 Purpose
 
 One of the built-in input sources.
 #process-inputidentifies 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-inputis unavailable to the program; attempts to access it will generate an error. #process-inputexplicitly identifies a source of input, and can be used as the scanning source in:
 The use of #process-inputis subject to the following constraints: It can be processed only once in each run of a program, by do scan,repeat scan, orsubmit. If an attempt is made to use it more than once, an error will be generated.#process-inputis 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-inputas 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-inputwill be read into memory.In scanorsubmitactions,#process-inputeither must be the only input source or must be directly output to a stream and read as usual.
 Further difficulty arises when #process-inputdoes not have an "end". This can happen when it is piped from a keyboard or other such device, where the input can wait forever for another character. This will "hang" a program that attempts to read in all of#process-inputat once. Because of these difficulties, take care to design your program to read #process-inputincrementally. The appropriate herald type for #process-inputis "source". |