fspec - format specification in text files
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:
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.
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.
The m parameter specifies a number of spaces to be prepended to each line. The value of margin must be an integer.
The d parameter takes no value. Its presence indicates that the line containing the format specification is to be deleted from the converted file.
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.