]>
Commit | Line | Data |
---|---|---|
6dbe3af9 KZ |
1 | # @(#)README 5.1 (Berkeley) 5/22/90 |
2 | ||
3 | col - filter out reverse line feeds. | |
4 | ||
5 | Options are: | |
6 | -b do not print any backspaces (last character written is printed) | |
7 | -f allow half line feeds in output, by default characters between | |
8 | lines are pushed to the line below | |
9 | -x do not compress spaces into tabs. | |
10 | -l num keep (at least) num lines in memory, 128 are kept by default | |
11 | ||
12 | In the 32V source code to col(1) the default behavior was to NOT compress | |
13 | spaces into tabs. There was a -h option which caused it to compress spaces | |
14 | into tabs. There was no -x flag. | |
15 | ||
16 | The 32V documentation, however, was consistent with the SVID (actually, V7 | |
17 | at the time) and documented a -x flag (as defined above) while making no | |
18 | mention of a -h flag. Just before 4.3BSD went out, CSRG updated the manual | |
19 | page to reflect the way the code worked. Suspecting that this was probably | |
20 | the wrong way to go, this version adopts the SVID defaults, and no longer | |
21 | documents the -h option. | |
22 | ||
23 | The S5 -p flag is not supported because it isn't clear what it does (looks | |
24 | like a kludge introduced for a particular printer). | |
25 | ||
26 | Known differences between AT&T's col and this one (# is delimiter): | |
27 | Input AT&T col this col | |
28 | #\nabc\E7def\n# # def\nabc\r# # def\nabc\n# | |
29 | #a# ## #a\n# | |
30 | - last line always ends with at least one \n (or \E9) | |
31 | #1234567 8\n# #1234567\t8\n# #1234567 8\n# | |
32 | - single space not expanded to tab | |
33 | -f #a\E8b\n# #ab\n# # b\E9\ra\n# | |
34 | - can back up past first line (as far as you want) so you | |
35 | *can* have a super script on the first line | |
36 | #\E9_\ba\E8\nb\n# #\n_\bb\ba\n# #\n_\ba\bb\n# | |
37 | - always print last character written to a position, | |
38 | AT&T col claims to do this but doesn't. | |
39 | ||
40 | If a character is to be placed on a line that has been flushed, a warning | |
41 | is produced (the AT&T col is silent). The -l flag (not in AT&T col) can | |
42 | be used to increase the number of lines buffered to avoid the problem. | |
43 | ||
44 | General algorithm: a limited number of lines are buffered in a linked | |
45 | list. When a printable character is read, it is put in the buffer of | |
46 | the current line along with the column it's supposed to be in. When | |
47 | a line is flushed, the characters in the line are sorted according to | |
48 | column and then printed. |