[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[no subject]
Also, use err(3) and style(9) cleanup.
Please review.
Index: col.1
===================================================================
RCS file: /home/ncvs/src/usr.bin/col/col.1,v
retrieving revision 1.7
diff -u -r1.7 col.1
--- col.1 2001/05/11 23:53:46 1.7
+++ col.1 2001/05/27 04:55:41
@@ -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 @@
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
Index: col.c
===================================================================
RCS file: /home/ncvs/src/usr.bin/col/col.c,v
retrieving revision 1.9
diff -u -r1.9 col.c
--- col.c 2001/05/26 22:45:14 1.9
+++ col.c 2001/05/27 04:55:42
@@ -101,7 +101,6 @@
void free_line __P((LINE *));
int main __P((int, char **));
void usage __P((void));
-void wrerr __P((void));
void *xmalloc __P((void *, size_t));
CSET last_set; /* char_set of last char printed */
@@ -111,11 +110,12 @@
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 { \
- if (putchar(ch) == EOF) \
- wrerr(); \
+ do { \
+ if (putchar(ch) == EOF) \
+ errx(1, "write error"); \
} while (0)
int
@@ -135,11 +135,11 @@
int nflushd_lines; /* number of lines that were flushed */
int adjust, opt, warned;
- (void) setlocale(LC_CTYPE, "");
+ (void)setlocale(LC_CTYPE, "");
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;
@@ -154,6 +154,9 @@
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;
@@ -221,7 +224,8 @@
cur_line -= 2;
continue;
}
- continue;
+ if (!pass_unknown_seqs)
+ continue;
}
/* Must stuff ch in a line - are we at the right one? */
@@ -284,8 +288,8 @@
int need;
need = l->l_lsize ? l->l_lsize * 2 : 90;
- l->l_line = (CHAR *)xmalloc((void *) l->l_line,
- (unsigned) need * sizeof(CHAR));
+ l->l_line = xmalloc(l->l_line,
+ (unsigned)need * sizeof(CHAR));
l->l_lsize = need;
}
c = &l->l_line[l->l_line_len++];
@@ -340,7 +344,7 @@
}
nblank_lines++;
if (l->l_line)
- (void)free((void *)l->l_line);
+ (void)free(l->l_line);
free_line(l);
}
if (lines)
@@ -401,15 +405,15 @@
*/
if (l->l_lsize > sorted_size) {
sorted_size = l->l_lsize;
- sorted = (CHAR *)xmalloc((void *)sorted,
+ sorted = xmalloc(sorted,
(unsigned)sizeof(CHAR) * sorted_size);
}
if (l->l_max_col >= count_size) {
count_size = l->l_max_col + 1;
- count = (int *)xmalloc((void *)count,
+ count = xmalloc(count,
(unsigned)sizeof(int) * count_size);
}
- memset((char *)count, 0, sizeof(int) * l->l_max_col + 1);
+ memset(count, 0, sizeof(int) * l->l_max_col + 1);
for (i = nchars, c = l->l_line; --i >= 0; c++)
count[c->c_column]++;
@@ -494,7 +498,7 @@
int i;
if (!line_freelist) {
- l = (LINE *)xmalloc((void *)NULL, sizeof(LINE) * NALLOC);
+ l = xmalloc(NULL, sizeof(LINE) * NALLOC);
line_freelist = l;
for (i = 1; i < NALLOC; i++, l++)
l->l_next = l + 1;
@@ -522,8 +526,8 @@
size_t size;
{
- if (!(p = (void *)realloc(p, size)))
- err(1, NULL);
+ if (!(p = realloc(p, size)))
+ err(1, (char *)NULL);
return (p);
}
@@ -531,15 +535,8 @@
usage()
{
- (void)fprintf(stderr, "usage: col [-bfhx] [-l nline]\n");
+ (void)fprintf(stderr, "usage: col [-bfhpx] [-l nline]\n");
exit(1);
-}
-
-void
-wrerr()
-{
-
- errx(1, "write error");
}
void
Also at: http://people.freebsd.org/~mikeh/diffs/col.diff
Mike
--
Mike Heffner <mheffner@xxxxxx>
Fredericksburg, VA <mikeh@xxxxxxxxxxx>
http://filebox.vt.edu/users/mheffner
To Unsubscribe: send mail to majordomo@xxxxxxxxxxx
with "unsubscribe freebsd-audit" in the body of the message