Finish up cols(1)
This commit is contained in:
parent
7cdb24d085
commit
5a20d0e9d7
2
README
2
README
|
@ -18,7 +18,7 @@ The following tools are implemented ('*' == finished, '#' == UTF-8 support,
|
||||||
=* chroot non-posix none
|
=* chroot non-posix none
|
||||||
=* cksum yes none
|
=* cksum yes none
|
||||||
cmp yes none
|
cmp yes none
|
||||||
cols non-posix none
|
#* cols non-posix none
|
||||||
=* comm yes none
|
=* comm yes none
|
||||||
= cp no -H, (-i), -L
|
= cp no -H, (-i), -L
|
||||||
=* cron non-posix none
|
=* cron non-posix none
|
||||||
|
|
22
cols.1
22
cols.1
|
@ -1,4 +1,4 @@
|
||||||
.Dd December 8, 2014
|
.Dd February 1, 2015
|
||||||
.Dt COLS 1
|
.Dt COLS 1
|
||||||
.Os sbase
|
.Os sbase
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -6,34 +6,36 @@
|
||||||
.Nd columnize output
|
.Nd columnize output
|
||||||
.Sh SYNOPSIS
|
.Sh SYNOPSIS
|
||||||
.Nm
|
.Nm
|
||||||
.Op Fl c Ar chars
|
.Op Fl c Ar num
|
||||||
.Op Ar file ...
|
.Op Ar file ...
|
||||||
.Sh DESCRIPTION
|
.Sh DESCRIPTION
|
||||||
.Nm
|
.Nm
|
||||||
reads each file in sequence and writes them to stdout, in as many vertical
|
reads each
|
||||||
|
.Ar file
|
||||||
|
in sequence and writes them to stdout, in as many vertical
|
||||||
columns as will fit in
|
columns as will fit in
|
||||||
.Ar chars
|
.Ar num
|
||||||
character columns. If no
|
character columns. If no
|
||||||
.Ar file
|
.Ar file
|
||||||
is given,
|
is given,
|
||||||
.Nm
|
.Nm
|
||||||
reads from stdin.
|
reads from stdin.
|
||||||
.Sh OPTIONS
|
.Sh OPTIONS
|
||||||
.Bl -tag -width xxxxxxxx
|
.Bl -tag -width Ds
|
||||||
.It Fl c Ar chars
|
.It Fl c Ar chars
|
||||||
Specifies the maximum number of character columns to use
|
Set the maximum number of character columns to use
|
||||||
(unless the input contains lines longer than
|
(unless the input contains lines longer than
|
||||||
.Ar chars
|
.Ar num
|
||||||
characters). By default cols tries to figure out the width of the output
|
characters). By default cols tries to figure out the width of the output
|
||||||
device, if that fails it defaults to 65 chars.
|
device. If that fails, it defaults to 65 chars.
|
||||||
.El
|
.El
|
||||||
.Sh HISTORY
|
.Sh HISTORY
|
||||||
.Nm
|
.Nm
|
||||||
is similar to the mc(1) command on Plan 9. It was renamed to
|
is similar to mc(1) in Plan 9. It was renamed to
|
||||||
.Nm
|
.Nm
|
||||||
to avoid the name collision with the popular file manager
|
to avoid the name collision with the popular file manager
|
||||||
Midnight Commander.
|
Midnight Commander.
|
||||||
.Sh BUGS
|
.Sh CAVEATS
|
||||||
This implementation of
|
This implementation of
|
||||||
.Nm
|
.Nm
|
||||||
assumes that each UTF-8 code point occupies one character cell,
|
assumes that each UTF-8 code point occupies one character cell,
|
||||||
|
|
6
cols.c
6
cols.c
|
@ -12,7 +12,7 @@
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
static size_t chars = 65;
|
static size_t chars = 65;
|
||||||
static int cflag;
|
static int cflag;
|
||||||
static struct linebuf b = EMPTY_LINEBUF;
|
static struct linebuf b = EMPTY_LINEBUF;
|
||||||
|
|
||||||
static size_t n_columns;
|
static size_t n_columns;
|
||||||
|
@ -58,8 +58,8 @@ main(int argc, char *argv[])
|
||||||
for (l = 0; l < b.nlines; ++l) {
|
for (l = 0; l < b.nlines; ++l) {
|
||||||
len = utflen(b.lines[l]);
|
len = utflen(b.lines[l]);
|
||||||
bytes = strlen(b.lines[l]);
|
bytes = strlen(b.lines[l]);
|
||||||
if (len > 0 && b.lines[l][bytes-1] == '\n') {
|
if (len > 0 && b.lines[l][bytes - 1] == '\n') {
|
||||||
b.lines[l][bytes-1] = '\0';
|
b.lines[l][bytes - 1] = '\0';
|
||||||
--len;
|
--len;
|
||||||
}
|
}
|
||||||
if (len > maxlen)
|
if (len > maxlen)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user