13.  Miscellaneous Primitives

      The first two primitives described in this section are not essential, as the same function could be achieved with pipe streams, although with greater overhead. The remaining primitives perform a number of troff-specific operations and are only useful in a few specialized contexts.

(shell-command command)

      Runs the specified command (which must be a string) as a shell command by passing it to a call to system(3). The return value is that of system() (an integer).

(remove-file filename)

      Removes the specified file; filename must be a string or a symbol.

(troff-compatible?)

      This predicate returns #t if troff compatibility mode has been enabled (i.e. if the option -C has been given), otherwise #f.

(set-escape! char)

      Sets the troff escape character (initially `\') to the specified character argument. This primitive is used to implement the ``.ec'' request.

(filter-eqn-line string)

      This primitive scans the string argument (which is supposed to be passed to the eqn preprocessor afterwards) for occurrences of the ``delim'' directive. If a ``delim'' directive is found, the current inline equation delimiters maintained by the parser are changed or disabled as specified by the directive. The primitive returns #f if string is empty or consists just of white space, or if it contains a valid ``delim'' or ``define'' directive, otherwise #t. The inline equation delimiters are disabled initially.

      The primitive is supposed to be used by implementations of the request ``.EQ'' and inline equation event handlers to intercept the eqn input. In this case, the eqn preprocessor need only be invoked if filter-eqn-line returned #t at least once.

(skip-group)

      This primitive reads input lines from the current input stream and scans them for the escape sequences `\{' and `\}' until the nesting level of conditional input is balanced (i.e. until a matching closing brace for an initial opening brace has been found). The primitive is only useful for the implementation of the troff requests for conditional input.


Markup created by unroff 1.0,    March 21, 1996,    net@informatik.uni-bremen.de