The following first-character slew controls and actions are provided:
Table 5-4 Carriage Control with Blank, 0, 1, and +
Character |
Vertical spacing before printing |
---|---|
Blank 0 1 + |
One line Two lines To first line of next page No advance (stdout only, not files) |
If the first character of the format is not space, 0, 1, or +, then it is treated as a space, and it is not printed.
The behavior of the slew control character + is: if the character in the first column is +, it is replaced by a control sequence that causes printing to return to the first column of the previous line, where the rest of the input line is printed.
Space, 0, 1, and + work for stdout if piped through asa.
Example: First-character formatting, standard output piped through asa:
demo% cat slew1.f WRITE( *, '("abcd")') WRITE( *, '(" efg")') The blank single spaces WRITE( *, '("0hij")') The "0" double spaces WRITE( *, '("1klm")') The "1" starts this on a new page WRITE( *, '("+", T5, "nop")') The "+" starts this at col 1 of latest line END demo% f77 -silent slew1.f demo% a.out | asa | lpr demo%
The program, slew1.f produces file, slew1.out, as printed by lpr:
bcd efg hij klmnop This starts on a new page. The + of +nop is obeyed.
The results are different on a screen; the tabbing puts in spaces:
demo% cat slew1.out bcd efg hij nop This starts on a new page. The + of +nop is obeyed. demo%
See asa(1).
The space, 0, and 1, and + work for a file opened with:
Sequential access
FORM='PRINT'
Example: First-character formatting, file output:
demo% cat slew2.f OPEN( 1,FILE='slew.out',FORM='PRINT' ) WRITE( 1, '("abcd")') WRITE( 1, '("efg")') WRITE( 1, '("0hij")') WRITE( 1, '("1klm")') WRITE( 1, '("+", T5, "nop")') CLOSE( 1, STATUS='KEEP') END demo% f77 -silent slew2.f demo% a.out
The program, slew2.f, produces the file, slew2.out, that is equal to the file, slew1.out, in the example above.
Slew control codes '0', '1', and '+' in column one are in the output file as '\n', '\f', and '\r', respectively.