fspec

- format specification in text files

Description

It is sometimes convenient to maintain text files on the system with
non-standard tabs, (tabs that are not set at every eighth column). Such
files must generally be converted to a standard format, frequently by replacing all
tabs with the appropriate number of spaces, before they can be processed
by system commands. A format specification occurring in the first line of
a text file specifies how tabs are to be expanded in the remainder
of the file.

A format specification consists of a sequence of parameters separated by blanks
and surrounded by the brackets <: and :>. Each parameter consists of
a keyletter, possibly followed immediately by a value. The following parameters are recognized:

ttabs

The t parameter specifies the tab settings for the file. The value of tabs must be one of the following:

A list of column numbers separated by commas, indicating tabs set at the specified columns.

A '-' followed immediately by an integer n, indicating tabs at intervals of n columns.

A '-' followed by the name of a ``canned'' tab specification.

Standard tabs are specified by t-8, or equivalently, t1,9,17,25, etc. The canned tabs that are recognized are defined by the tabs(1) command.

ssize

The s parameter specifies a maximum line size. The value of size must be an integer. Size checking is performed after tabs have been expanded, but before the margin is prepended.

mmargin

The m parameter specifies a number of spaces to be prepended to each line. The value of margin must be an integer.

d

The d parameter takes no value. Its presence indicates that the line containing the format specification is to be deleted from the converted file.

e

The e parameter takes no value. Its presence indicates that the current format is to prevail only until another format specification is encountered in the file.

Default values, which are assumed for parameters not supplied, are t-8 and
m0. If the s parameter is not specified, no size checking is performed.
If the first line of a file does not contain a format
specification, the above defaults are assumed for the entire file. The following
is an example of a line containing a format specification:

* <:t5,10,15 s72:> *

If a format specification can be disguised as a comment, it is
not necessary to code the d parameter.