sbase/cols.1
FRIGN f140403fca Audit cols(1)
1) Refactor manpage.
2) De-globalize local values.
3) update usage().
4) sort local variable declarations.
5) fix wrong argument in strtonum (3 -> 1).
6) argc-argv style, boolean style.
7) check bytes > 0 before accessing b.lines[i][bytes - 1]
   relying on len only makes sense but let's not push it.
7) don't break on maxlen > (chars - 1) / 2. This didn't even
   make sense.
8) _correctly_ calculate cols and rows in a readable way.
9) Rewrite loop over rows and cols in a readable way and
   using putchar in a loop instead of printf-magic or fputs
   where not necessary.
2015-03-08 19:49:59 +01:00

57 lines
1.0 KiB
Groff

.Dd March 8, 2015
.Dt COLS 1
.Os sbase
.Sh NAME
.Nm cols
.Nd columnize output
.Sh SYNOPSIS
.Nm
.Op Fl c Ar num
.Op Ar file ...
.Sh DESCRIPTION
.Nm
reads each
.Ar file
in sequence and writes them to stdout, in as many vertical
columns as will fit in
.Ar num
character columns.
If no
.Ar file
is given,
.Nm
reads from stdin.
.Pp
By default
.Nm cols
tries to figure out the width of the output
device. If that fails, it defaults to 65 chars.
.Sh OPTIONS
.Bl -tag -width Ds
.It Fl c Ar num
Set maximum number of character columns to
.Ar num ,
unless input lines exceed this limit.
.El
.Sh ENVIRONMENT
.Bl -tag -width Ds
.It COLUMNS
The width of the output device.
.El
.Sh HISTORY
.Nm
is similar to
.Xr mc 1
in Plan 9. It was renamed to
.Nm
to avoid the name collision with the popular file manager
Midnight Commander.
.Sh CAVEATS
This implementation of
.Nm
assumes that each UTF-8 code point occupies one character cell,
and thus mishandles TAB characters (among others).
.Pp
.Nm
currently mangles files which contain embedded NULs.