Syntax
replacement-break character string condition?
Purpose
Defines a string used to replace a specified character in data content when OmniMark decides to break a line at one of the following:
- a "%/" format item that immediately precedes the character.
- the character occurs in SGML PCDATA being written to a stream, which is not controlled by the
h modifier.
Typically, space and tab characters are replaced by end-of-line sequences.
The character is a single character expressed as a quoted string; string is the replacing string and condition is an optional condition.
The replacement-break declaration and insertion string can contain only static text, and must contain at least one end-of-line sequence.
An OmniMark program can have any number of replacement-break declarations. However, the conditions must ensure that only one declaration for a given character is valid at any time.
The condition on a replacement-break rule can't contain function calls. This rather extreme provision has been made to avoid the consequences of side-effects within such functions. Two types of side-effect are especially troublesome:
- The synchronization of output in general, as a consequence of
output or put actions in a function called from within such a condition, is highly non-deterministic.
- It is not clear what the effect of an
output-to in such a condition should be.
Note that referents may interact with the line-breaking mechanism to prevent optimal results.
|