History log of /openbsd-current/usr.bin/col/col.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.20 04-Dec-2022 cheloha

userspace: remove vestigial '?' cases from top-level getopt(3) loops

getopt(3) returns '?' when it encounters a flag not present in the in
the optstring or if a flag is missing its option argument. We can
handle this case with the "default" failure case with no loss of
legibility. Hence, remove all the redundant "case '?':" lines.

Prompted by dlg@. With help from dlg@ and millert@.

Link: https://marc.info/?l=openbsd-tech&m=167011979726449&w=2

ok naddy@ millert@ dlg@


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE OPENBSD_7_1_BASE OPENBSD_7_2_BASE
# 1.19 09-Oct-2015 deraadt

Change all tame callers to namechange to pledge(2).


# 1.18 05-Oct-2015 deraadt

col can be locked down with tame "stdio", in case it is fed nasty input,
or if it has bugs. The previous commits by schwarze indicate the latter
case was very true until recently...
ok doug


Revision tags: OPENBSD_5_8_BASE
# 1.17 09-May-2015 schwarze

For half and reverse line feeds, recognize SUSv2-style escape-digit
sequences in the input stream in addition to traditional BSD-style
escape-control-char sequences because traditional tools, for example
Heirloom roff, produce SUSv2-style sequences. Switch the encoding
of forward half line feeds in the output of -f back to SUSv2 style
because that's likely to work with more tools than the non-standard
traditional BSD-style sequence. Fully document these choices.

Issues originally reported by bapt at FreeBSD.
OK millert@ jmc@, and bapt@ also more or less agrees with the direction.


# 1.16 08-May-2015 schwarze

Avoid scattering octal escapes all over the place,
use the definitions given at the top of the file.
No functional change.
From bapt at FreeBSD.


# 1.15 08-May-2015 schwarze

Fix about ten integer overflows and underflows and a handful of logic
errors in line number handling. Detailed explanations were sent to tech@
on October 18, 2014.
OK doug@, and bapt at FreeBSD says he likes the direction


Revision tags: OPENBSD_5_7_BASE
# 1.14 17-Oct-2014 schwarze

Correctly encode half line feed in the output stream for -f;
this patch only changes two bits, note that '\011' != '9' == '\071'.
Bug introduced by the original author, Michael Rendell, and
committed by Keith Bostic on May 22, 1990 (CSRG SCCS rev. 5.1).

The following operating systems are affected: 4.3BSD Reno, BSD Net/2,
4.4BSD, 4.4BSD Lite1, 4.4BSD Lite2, and all versions of 386BSD,
NetBSD, OpenBSD, FreeBSD, DragonFly, Debian GNU/Linux (package
bsdmainutils) and probably many others.

"that's a fun one" millert@, "nice find" deraadt@


# 1.13 16-Oct-2014 schwarze

1) Fix a segfault triggered by an input line containing two consecutive
backspace characters beyond column MAX_SHRT, overflowing c_column.
2) Fix imcomplete initialization of the final element of the *count
array by adding a missing pair of parentheses.
3) For code clarity and extra safety, change all variables dealing
with column numbers from int to size_t such that they cannot overflow.
Found while reviewing the patch from deraadt@'s reallocarray() rampage.
Feedback and OK millert@.


# 1.12 08-Oct-2014 deraadt

use the reallocarray idiom; ok ingo


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.11 27-Oct-2009 deraadt

rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and
unmaintainable). these days, people use source. these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms


Revision tags: OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.10 01-May-2007 jdixon

use strtonum; ok millert@


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE
# 1.9 10-Jun-2003 deraadt

mostly ansi cleanup; pval ok


# 1.8 03-Jun-2003 millert

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999. Proofed by myself and Theo.


Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE
# 1.7 16-Feb-2002 millert

Part one of userland __P removal. Done with a simple regexp with some minor hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically.


Revision tags: OPENBSD_2_9_BASE OPENBSD_3_0_BASE
# 1.6 21-Nov-2000 aaron

Sync usage() output with man page; mpech@prosoft.org.lv


Revision tags: OPENBSD_2_2_BASE OPENBSD_2_3_BASE OPENBSD_2_4_BASE OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE
# 1.5 25-Jul-1997 mickey

use err(3)


# 1.4 17-Jun-1997 kstailey

(foo *)NULL -> NULL + err msg for realloc failure


Revision tags: OPENBSD_2_1_BASE
# 1.3 15-Jan-1997 millert

getopt(3) returns -1 when out of args, not EOF, whee!


Revision tags: OPENBSD_2_0_BASE
# 1.2 26-Jun-1996 deraadt

rcsid


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
# 1.19 09-Oct-2015 deraadt

Change all tame callers to namechange to pledge(2).


# 1.18 05-Oct-2015 deraadt

col can be locked down with tame "stdio", in case it is fed nasty input,
or if it has bugs. The previous commits by schwarze indicate the latter
case was very true until recently...
ok doug


Revision tags: OPENBSD_5_8_BASE
# 1.17 09-May-2015 schwarze

For half and reverse line feeds, recognize SUSv2-style escape-digit
sequences in the input stream in addition to traditional BSD-style
escape-control-char sequences because traditional tools, for example
Heirloom roff, produce SUSv2-style sequences. Switch the encoding
of forward half line feeds in the output of -f back to SUSv2 style
because that's likely to work with more tools than the non-standard
traditional BSD-style sequence. Fully document these choices.

Issues originally reported by bapt at FreeBSD.
OK millert@ jmc@, and bapt@ also more or less agrees with the direction.


# 1.16 08-May-2015 schwarze

Avoid scattering octal escapes all over the place,
use the definitions given at the top of the file.
No functional change.
From bapt at FreeBSD.


# 1.15 08-May-2015 schwarze

Fix about ten integer overflows and underflows and a handful of logic
errors in line number handling. Detailed explanations were sent to tech@
on October 18, 2014.
OK doug@, and bapt at FreeBSD says he likes the direction


Revision tags: OPENBSD_5_7_BASE
# 1.14 17-Oct-2014 schwarze

Correctly encode half line feed in the output stream for -f;
this patch only changes two bits, note that '\011' != '9' == '\071'.
Bug introduced by the original author, Michael Rendell, and
committed by Keith Bostic on May 22, 1990 (CSRG SCCS rev. 5.1).

The following operating systems are affected: 4.3BSD Reno, BSD Net/2,
4.4BSD, 4.4BSD Lite1, 4.4BSD Lite2, and all versions of 386BSD,
NetBSD, OpenBSD, FreeBSD, DragonFly, Debian GNU/Linux (package
bsdmainutils) and probably many others.

"that's a fun one" millert@, "nice find" deraadt@


# 1.13 16-Oct-2014 schwarze

1) Fix a segfault triggered by an input line containing two consecutive
backspace characters beyond column MAX_SHRT, overflowing c_column.
2) Fix imcomplete initialization of the final element of the *count
array by adding a missing pair of parentheses.
3) For code clarity and extra safety, change all variables dealing
with column numbers from int to size_t such that they cannot overflow.
Found while reviewing the patch from deraadt@'s reallocarray() rampage.
Feedback and OK millert@.


# 1.12 08-Oct-2014 deraadt

use the reallocarray idiom; ok ingo


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.11 27-Oct-2009 deraadt

rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and
unmaintainable). these days, people use source. these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms


Revision tags: OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.10 01-May-2007 jdixon

use strtonum; ok millert@


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE
# 1.9 10-Jun-2003 deraadt

mostly ansi cleanup; pval ok


# 1.8 03-Jun-2003 millert

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999. Proofed by myself and Theo.


Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE
# 1.7 16-Feb-2002 millert

Part one of userland __P removal. Done with a simple regexp with some minor hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically.


Revision tags: OPENBSD_2_9_BASE OPENBSD_3_0_BASE
# 1.6 21-Nov-2000 aaron

Sync usage() output with man page; mpech@prosoft.org.lv


Revision tags: OPENBSD_2_2_BASE OPENBSD_2_3_BASE OPENBSD_2_4_BASE OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE
# 1.5 25-Jul-1997 mickey

use err(3)


# 1.4 17-Jun-1997 kstailey

(foo *)NULL -> NULL + err msg for realloc failure


Revision tags: OPENBSD_2_1_BASE
# 1.3 15-Jan-1997 millert

getopt(3) returns -1 when out of args, not EOF, whee!


Revision tags: OPENBSD_2_0_BASE
# 1.2 26-Jun-1996 deraadt

rcsid


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision