FSPEC(5)

NAME
fspec - format specification in text files

DESCRIPTION

It is sometimes convenient to maintain text files on the operating system with non-standard tab stop settings, (that is, tab stops that are not set at every eighth column). Such files must generally be converted to a standard format, frequently by replacing all TAB characters with the appropriate number of SPACE characters, before they can be processed by operating system commands. A format specification occurring in the first line of a text file specifies how TAB characters 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 stop settings for the file. The value of tabs must be one of the following:

    •   A list of column numbers separated by commas, indicating tab stops set at the specified columns;

    •   A `-' followed immediately by an integer n, indicating tab stops set at intervals of n columns, that is, at 1+n, 1+2*n, and so on;

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

Up to 40 numbers are allowed in a comma-separated list of tab stop settings. If any number (except the first one) is preceded by a plus sign, it is taken as an increment to be added to the previous value. Thus, the formats t1, 10, 20, 30 and t1, 10, +10, +10 are considered identical.

Standard tab stops are specified by t-8, or equivalently, t1, 9, 17, 25, etc. This is the tab stop setting that most operating system utilities assume, and is the most likely setting to be found at a terminal. The specification t-0 specifies no tab stops at all.

The ``canned'' tab stops specifications that are recognized are as follows:

    a   1, 10, 16, 36, 72
        Assembler, IBM S/370, first format

    a2  1, 10, 16, 40, 72
        Assembler, IBM S/370, second format

    c   1, 8, 12, 16, 20, 55
        COBOL, normal format

    c2  1, 6, 10, 14, 49
        COBOL compact format (columns 1-6 omitted). Using this code, the first typed character corresponds to card column 7, one space gets you to column 8, and a TAB reaches column 12. Files using this tab stop setup should include a format specification as follows:
            <:t-c2 m6 s66 d:>

    c3  1, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50, 54, 58, 62, 67
        COBOL compact format (columns 1-6 omitted), with more tab stops than c2. This is the recommended format for COBOL. The appropriate format specification is:
            <:t-c3 m6 s66 d:>

    f   1, 7, 11, 15, 19, 23
        FORTRAN

    p   1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61
        PL/I

    s   1, 10, 55
        SNOBOL

    u   1, 12, 20, 44
        UNIVAC 1100 Assembler

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

mmargin
    The m parameter specifies a number of SPACE characters 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.

SEE ALSO
ed(1), tabs(1V)