summaryrefslogtreecommitdiffstats
path: root/usr.bin
diff options
context:
space:
mode:
authormikeh <mikeh@FreeBSD.org>2001-06-17 04:24:16 +0000
committermikeh <mikeh@FreeBSD.org>2001-06-17 04:24:16 +0000
commit714cc67ab669e57482b4991f6b38771231a73aca (patch)
tree8db6603063905c27d9d4de94ac61e41842b9e159 /usr.bin
parent8174fd75ca03de898fc2e94ccc9a0e0315851d4f (diff)
downloadFreeBSD-src-714cc67ab669e57482b4991f6b38771231a73aca.zip
FreeBSD-src-714cc67ab669e57482b4991f6b38771231a73aca.tar.gz
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
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/col/README6
-rw-r--r--usr.bin/col/col.18
-rw-r--r--usr.bin/col/col.c11
3 files changed, 18 insertions, 7 deletions
diff --git a/usr.bin/col/README b/usr.bin/col/README
index f673f3a..116a044 100644
--- a/usr.bin/col/README
+++ b/usr.bin/col/README
@@ -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#
diff --git a/usr.bin/col/col.1 b/usr.bin/col/col.1
index 4576e77..72c76d9 100644
--- a/usr.bin/col/col.1
+++ b/usr.bin/col/col.1
@@ -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
diff --git a/usr.bin/col/col.c b/usr.bin/col/col.c
index aed79bd..609b788 100644
--- a/usr.bin/col/col.c
+++ b/usr.bin/col/col.c
@@ -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);
}
OpenPOWER on IntegriCloud