Add the -p flag to force unknown control sequences to be passed

through unchanged.

Reviewed by:	silence on -audit
Obtained from:	NetBSD
MFC after:	3 weeks
This commit is contained in:
Mike Heffner 2001-06-17 04:24:16 +00:00
parent f34d0e7447
commit 844518ff93
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=78384
3 changed files with 18 additions and 7 deletions

View File

@ -1,4 +1,6 @@
# @(#)README 8.1 (Berkeley) 6/6/93
#
# $FreeBSD$
col - filter out reverse line feeds.
@ -6,6 +8,7 @@ Options are:
-b do not print any backspaces (last character written is printed)
-f allow half line feeds in output, by default characters between
lines are pushed to the line below
-p force unknown control sequences to be passed through unchanged
-x do not compress spaces into tabs.
-l num keep (at least) num lines in memory, 128 are kept by default
@ -20,9 +23,6 @@ page to reflect the way the code worked. Suspecting that this was probably
the wrong way to go, this version adopts the SVID defaults, and no longer
documents the -h option.
The S5 -p flag is not supported because it isn't clear what it does (looks
like a kludge introduced for a particular printer).
Known differences between AT&T's col and this one (# is delimiter):
Input AT&T col this col
#\nabc\E7def\n# # def\nabc\r# # def\nabc\n#

View File

@ -43,7 +43,7 @@
.Nd filter reverse line feeds from input
.Sh SYNOPSIS
.Nm
.Op Fl bfhx
.Op Fl bfhpx
.Op Fl l Ar num
.Sh DESCRIPTION
.Nm Col
@ -69,6 +69,12 @@ Normally characters printed on a half line boundary are printed
on the following line.
.It Fl h
Don't output multiple spaces instead of tabs (default).
.It Fl p
Force unknown control sequences to be passed through unchanged.
Normally,
.Nm
will filter out any control sequences from the input other than those
recognized and interpreted by itself, which are listed below.
.It Fl x
Output multiple spaces instead of tabs.
.It Fl l Ar num

View File

@ -110,6 +110,7 @@ int fine; /* if `fine' resolution (half lines) */
int max_bufd_lines; /* max # lines to keep in memory */
int nblank_lines; /* # blanks after last flushed line */
int no_backspaces; /* if not to output any backspaces */
int pass_unknown_seqs; /* pass unknown control sequences */
#define PUTC(ch) \
do { \
@ -138,7 +139,7 @@ main(argc, argv)
max_bufd_lines = 128;
compress_spaces = 1; /* compress spaces into tabs */
while ((opt = getopt(argc, argv, "bfhl:x")) != -1)
while ((opt = getopt(argc, argv, "bfhl:px")) != -1)
switch (opt) {
case 'b': /* do not output backspaces */
no_backspaces = 1;
@ -153,6 +154,9 @@ main(argc, argv)
if ((max_bufd_lines = atoi(optarg)) <= 0)
errx(1, "bad -l argument %s", optarg);
break;
case 'p': /* pass unknown control sequences */
pass_unknown_seqs = 1;
break;
case 'x': /* do not compress spaces into tabs */
compress_spaces = 0;
break;
@ -220,7 +224,8 @@ main(argc, argv)
cur_line -= 2;
continue;
}
continue;
if (!pass_unknown_seqs)
continue;
}
/* Must stuff ch in a line - are we at the right one? */
@ -530,7 +535,7 @@ void
usage()
{
(void)fprintf(stderr, "usage: col [-bfhx] [-l nline]\n");
(void)fprintf(stderr, "usage: col [-bfhpx] [-l nline]\n");
exit(1);
}