OpenBSD CVS

CVS log for src/usr.bin/wc/wc.c


[BACK] Up to [local] / src / usr.bin / wc

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.31 / (download) - annotate - [select for diffs], Sun Dec 4 23:50:50 2022 UTC (17 months, 2 weeks ago) by cheloha
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, OPENBSD_7_4_BASE, OPENBSD_7_4, OPENBSD_7_3_BASE, OPENBSD_7_3, HEAD
Changes since 1.30: +1 -2 lines
Diff to previous 1.30 (colored)

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 1.30 / (download) - annotate - [select for diffs], Fri Sep 2 15:21:40 2022 UTC (20 months, 2 weeks ago) by cheloha
Branch: MAIN
CVS Tags: OPENBSD_7_2_BASE, OPENBSD_7_2
Changes since 1.29: +47 -41 lines
Diff to previous 1.29 (colored)

wc(1): accelerate word counting

wc(1) counts a word whenever a whitespace byte is followed by a
non-whitespace byte.  Because the state machine transition occurs
within the space of a single byte we don't need to use getline(3).

Counting words in a big buffer with read(2) is much faster.  The
overhead varies with the length of a line, but for files with 60-100
byte lines, word counting is about twice as fast when we avoid
getline(3).  In the pathological case where each line is a single
byte, word counting is about ten times as fast when we avoid
getline(3).

Link1: https://marc.info/?l=openbsd-tech&m=163715995626532&w=2
Link2: https://marc.info/?l=openbsd-tech&m=165956826103639&w=2

"Seems reasonable." deraadt@

Revision 1.29 / (download) - annotate - [select for diffs], Sun Nov 28 19:28:42 2021 UTC (2 years, 5 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_7_1_BASE, OPENBSD_7_1
Changes since 1.28: +7 -6 lines
Diff to previous 1.28 (colored)

Stop using MAXBSIZE to eliminate sys/param.h including (which injects a
ton of namespace intrusion).  Create local sizes, and refactor some code
along the way.
ok millert

Revision 1.28 / (download) - annotate - [select for diffs], Tue Nov 16 23:34:24 2021 UTC (2 years, 6 months ago) by cheloha
Branch: MAIN
Changes since 1.27: +11 -8 lines
Diff to previous 1.27 (colored)

wc(1): fix NULL pointer dereference in cnt()

If the "file" argument to cnt() is NULL and we call warn(3) we will
get a NULL dereference.

Change the name of the argument to "path" and make "file" a local
variable.  Ensure that we set "file" to a valid C-string, even if
"path" is NULL.

While we're here, const the file name pointers, too.

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

ok millert@

Revision 1.27 / (download) - annotate - [select for diffs], Sun Oct 24 21:24:18 2021 UTC (2 years, 6 months ago) by deraadt
Branch: MAIN
Changes since 1.26: +2 -2 lines
Diff to previous 1.26 (colored)

For open/openat, if the flags parameter does not contain O_CREAT, the
3rd (variadic) mode_t parameter is irrelevant.  Many developers in the past
have passed mode_t (0, 044, 0644, or such), which might lead future people
to copy this broken idiom, and perhaps even believe this parameter has some
meaning or implication or application. Delete them all.
This comes out of a conversation where tb@ noticed that a strange (but
intentional) pledge behaviour is to always knock-out high-bits from
mode_t on a number of system calls as a safety factor, and his bewilderment
that this appeared to be happening against valid modes (at least visually),
but no sorry, they are all irrelevant junk.  They could all be 0xdeafbeef.
ok millert

Revision 1.26 / (download) - annotate - [select for diffs], Fri Jun 28 13:35:05 2019 UTC (4 years, 10 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_7_0_BASE, OPENBSD_7_0, OPENBSD_6_9_BASE, OPENBSD_6_9, OPENBSD_6_8_BASE, OPENBSD_6_8, OPENBSD_6_7_BASE, OPENBSD_6_7, OPENBSD_6_6_BASE, OPENBSD_6_6
Changes since 1.25: +2 -2 lines
Diff to previous 1.25 (colored)

When system calls indicate an error they return -1, not some arbitrary
value < 0.  errno is only updated in this case.  Change all (most?)
callers of syscalls to follow this better, and let's see if this strictness
helps us in the future.

Revision 1.25 / (download) - annotate - [select for diffs], Sun Sep 30 12:44:22 2018 UTC (5 years, 7 months ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_6_5_BASE, OPENBSD_6_5, OPENBSD_6_4_BASE, OPENBSD_6_4
Changes since 1.24: +2 -2 lines
Diff to previous 1.24 (colored)

For -w output in -m mode, tweak the handling of bytes that do not
form valid UTF-8: treat them as "not a whitespace character" and
hence "not a word boundary" in the same way as non-printable
characters and NUL bytes.

OK millert@

Revision 1.24 / (download) - annotate - [select for diffs], Sun Sep 30 12:35:40 2018 UTC (5 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.23: +3 -2 lines
Diff to previous 1.23 (colored)

fix the rest of the bug mitigated in the previous commit:
do not embark on an infinite loop
when -m is given and the file contains a NUL character;
OK millert@

Revision 1.23 / (download) - annotate - [select for diffs], Sat Sep 29 16:17:35 2018 UTC (5 years, 7 months ago) by cheloha
Branch: MAIN
Changes since 1.22: +4 -3 lines
Diff to previous 1.22 (colored)

Treat NUL like any other byte in the default case; aligns newline count
with that of the '-l' case.

From David Hines on bugs@.

ok millert@

Revision 1.22 / (download) - annotate - [select for diffs], Thu Apr 26 12:42:51 2018 UTC (6 years ago) by guenther
Branch: MAIN
Changes since 1.21: +3 -2 lines
Diff to previous 1.21 (colored)

Use <fcntl.h> instead of <sys/file.h> for open() and friends.
Delete a bunch of unnecessary #includes and sort to match style(9)
while doing the above cleanup.

ok deraadt@ krw@

Revision 1.21 / (download) - annotate - [select for diffs], Fri Sep 16 09:25:23 2016 UTC (7 years, 8 months ago) by fcambus
Branch: MAIN
CVS Tags: OPENBSD_6_3_BASE, OPENBSD_6_3, OPENBSD_6_2_BASE, OPENBSD_6_2, OPENBSD_6_1_BASE, OPENBSD_6_1
Changes since 1.20: +23 -24 lines
Diff to previous 1.20 (colored)

- Removed unnecessary string.h include
- Changed 'format_and_print' argument type to int64_t and casting
  inside the function
- Declaring 'print_counts', 'format_and_print', and 'cnt' as static
- Remove unnecessary cast for NULL, and (void) casts from printfs,
  'mbtowc' and 'format_and_print' calls
- In 'cnt', change bufsz type from ssize_t to size_t to avoid
  converting between pointers to integer types with different sign
  when calling getline (catched when compiling with Clang)
- Use return instead of exit in main

OK jung@

Revision 1.20 / (download) - annotate - [select for diffs], Tue Dec 8 01:00:45 2015 UTC (8 years, 5 months ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_6_0_BASE, OPENBSD_6_0, OPENBSD_5_9_BASE, OPENBSD_5_9
Changes since 1.19: +66 -33 lines
Diff to previous 1.19 (colored)

UTF-8 support: implement -m for character counting
and use iswspace(3) for word counting.
Requires using getline(3) rather than read(2)
to make sure that characters aren't chopped to pieces.

Using feedback from millert@ on an earlier version.
Feedback and OK tedu@.

Revision 1.19 / (download) - annotate - [select for diffs], Fri Oct 9 01:37:09 2015 UTC (8 years, 7 months ago) by deraadt
Branch: MAIN
Changes since 1.18: +3 -3 lines
Diff to previous 1.18 (colored)

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

Revision 1.18 / (download) - annotate - [select for diffs], Sat Oct 3 14:39:25 2015 UTC (8 years, 7 months ago) by deraadt
Branch: MAIN
Changes since 1.17: +4 -1 lines
Diff to previous 1.17 (colored)

wc only opens files read-only, proceses them, and spits results to stdout.
tame "stdio rpath" works, right before calling getopt()

Revision 1.17 / (download) - annotate - [select for diffs], Fri Jan 16 06:40:14 2015 UTC (9 years, 4 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_5_8_BASE, OPENBSD_5_8, OPENBSD_5_7_BASE, OPENBSD_5_7
Changes since 1.16: +4 -4 lines
Diff to previous 1.16 (colored)

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible.  Annotate <sys/param.h> lines with their current reasons.  Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc.  Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution.  These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)

Revision 1.16 / (download) - annotate - [select for diffs], Wed Nov 27 13:32:02 2013 UTC (10 years, 5 months ago) by okan
Branch: MAIN
CVS Tags: OPENBSD_5_6_BASE, OPENBSD_5_6, OPENBSD_5_5_BASE, OPENBSD_5_5
Changes since 1.15: +2 -2 lines
Diff to previous 1.15 (colored)

remove erroneous char cast to switch expression processing getopt(3);
not used in any cases.

ok deraadt@, guenther@, millert@

Revision 1.15 / (download) - annotate - [select for diffs], Sat Nov 23 17:37:22 2013 UTC (10 years, 5 months ago) by deraadt
Branch: MAIN
Changes since 1.14: +2 -2 lines
Diff to previous 1.14 (colored)

send a extra space to the bit bucket

Revision 1.14 / (download) - annotate - [select for diffs], Tue Nov 12 13:54:50 2013 UTC (10 years, 6 months ago) by deraadt
Branch: MAIN
Changes since 1.13: +2 -1 lines
Diff to previous 1.13 (colored)

simpler prototype repairs

Revision 1.13 / (download) - annotate - [select for diffs], Tue Oct 27 23:59:49 2009 UTC (14 years, 6 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_5_4_BASE, OPENBSD_5_4, OPENBSD_5_3_BASE, OPENBSD_5_3, OPENBSD_5_2_BASE, OPENBSD_5_2, OPENBSD_5_1_BASE, OPENBSD_5_1, OPENBSD_5_0_BASE, OPENBSD_5_0, OPENBSD_4_9_BASE, OPENBSD_4_9, OPENBSD_4_8_BASE, OPENBSD_4_8, OPENBSD_4_7_BASE, OPENBSD_4_7
Changes since 1.12: +1 -15 lines
Diff to previous 1.12 (colored)

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 1.12 / (download) - annotate - [select for diffs], Thu Jun 19 18:29:06 2008 UTC (15 years, 11 months ago) by otto
Branch: MAIN
CVS Tags: OPENBSD_4_6_BASE, OPENBSD_4_6, OPENBSD_4_5_BASE, OPENBSD_4_5, OPENBSD_4_4_BASE, OPENBSD_4_4
Changes since 1.11: +7 -4 lines
Diff to previous 1.11 (colored)

do not print spurious whitespace when reading from stdin;
from Bernd Ahlers with a twist from me; ok millert@

Revision 1.11 / (download) - annotate - [select for diffs], Wed Oct 19 21:49:02 2005 UTC (18 years, 7 months ago) by espie
Branch: MAIN
CVS Tags: OPENBSD_4_3_BASE, OPENBSD_4_3, OPENBSD_4_2_BASE, OPENBSD_4_2, OPENBSD_4_1_BASE, OPENBSD_4_1, OPENBSD_4_0_BASE, OPENBSD_4_0, OPENBSD_3_9_BASE, OPENBSD_3_9
Changes since 1.10: +25 -9 lines
Diff to previous 1.10 (colored)

Add -h option to display human-readable numbers.

okay otto@, deraadt@, jmc@.

(note that is mostly useless from scripts, hence okay as a non-standard
option).

Revision 1.10 / (download) - annotate - [select for diffs], Mon Apr 11 07:04:47 2005 UTC (19 years, 1 month ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_3_8_BASE, OPENBSD_3_8
Changes since 1.9: +5 -5 lines
Diff to previous 1.9 (colored)

spacing

Revision 1.9 / (download) - annotate - [select for diffs], Tue Jun 3 02:56:22 2003 UTC (20 years, 11 months ago) by millert
Branch: MAIN
CVS Tags: OPENBSD_3_7_BASE, OPENBSD_3_7, OPENBSD_3_6_BASE, OPENBSD_3_6, OPENBSD_3_5_BASE, OPENBSD_3_5, OPENBSD_3_4_BASE, OPENBSD_3_4
Changes since 1.8: +3 -7 lines
Diff to previous 1.8 (colored)

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

Revision 1.8 / (download) - annotate - [select for diffs], Tue Sep 17 19:37:40 2002 UTC (21 years, 8 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_3_3_BASE, OPENBSD_3_3, OPENBSD_3_2_BASE, OPENBSD_3_2
Changes since 1.7: +5 -12 lines
Diff to previous 1.7 (colored)

ansi

Revision 1.7 / (download) - annotate - [select for diffs], Sat Feb 16 21:27:58 2002 UTC (22 years, 3 months ago) by millert
Branch: MAIN
CVS Tags: OPENBSD_3_1_BASE, OPENBSD_3_1
Changes since 1.6: +4 -4 lines
Diff to previous 1.6 (colored)

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 1.6 / (download) - annotate - [select for diffs], Mon Nov 19 19:02:17 2001 UTC (22 years, 6 months ago) by mpech
Branch: MAIN
Changes since 1.5: +7 -7 lines
Diff to previous 1.5 (colored)

kill more registers

millert@ ok

Revision 1.5 / (download) - annotate - [select for diffs], Thu Jul 12 05:17:31 2001 UTC (22 years, 10 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_3_0_BASE, OPENBSD_3_0
Changes since 1.4: +5 -5 lines
Diff to previous 1.4 (colored)

first pass at a -Wall cleanup

Revision 1.4 / (download) - annotate - [select for diffs], Tue Feb 2 03:48:34 1999 UTC (25 years, 3 months ago) by millert
Branch: MAIN
CVS Tags: OPENBSD_2_9_BASE, OPENBSD_2_9, OPENBSD_2_8_BASE, OPENBSD_2_8, OPENBSD_2_7_BASE, OPENBSD_2_7, OPENBSD_2_6_BASE, OPENBSD_2_6, OPENBSD_2_5_BASE, OPENBSD_2_5
Changes since 1.3: +5 -5 lines
Diff to previous 1.3 (colored)

Remove useless cast to quad_t.  Gcc thinks "%qd" in printf is the same as "%lld" so we get a warning on alpha with -Wall.  Live with it.

Revision 1.3 / (download) - annotate - [select for diffs], Tue Feb 2 03:44:07 1999 UTC (25 years, 3 months ago) by millert
Branch: MAIN
Changes since 1.2: +62 -60 lines
Diff to previous 1.2 (colored)

 o Some minor updates from lite2 (mostly in the man page)
 o Add support for large files by using quads as counters

Revision 1.2 / (download) - annotate - [select for diffs], Wed Jun 26 05:42:50 1996 UTC (27 years, 10 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_2_4_BASE, OPENBSD_2_4, OPENBSD_2_3_BASE, OPENBSD_2_3, OPENBSD_2_2_BASE, OPENBSD_2_2, OPENBSD_2_1_BASE, OPENBSD_2_1, OPENBSD_2_0_BASE, OPENBSD_2_0
Changes since 1.1: +3 -1 lines
Diff to previous 1.1 (colored)

rcsid

Revision 1.1.1.1 / (download) - annotate - [select for diffs] (vendor branch), Wed Oct 18 08:46:51 1995 UTC (28 years, 7 months ago) by deraadt
CVS Tags: netbsd_1_1
Changes since 1.1: +0 -0 lines
Diff to previous 1.1 (colored)

initial import of NetBSD tree

Revision 1.1 / (download) - annotate - [select for diffs], Wed Oct 18 08:46:51 1995 UTC (28 years, 7 months ago) by deraadt
Branch: MAIN

Initial revision

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.