From: Jim Meyering Date: Thu, 9 Feb 1995 17:15:17 +0000 (+0000) Subject: (wc): Add a separate loop for counting only lines or lines and bytes. X-Git-Tag: textutils-1_12_1~302 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d131ddcf1fd7b00accdf61a35e8dcd212cb19387;p=thirdparty%2Fcoreutils.git (wc): Add a separate loop for counting only lines or lines and bytes. From Karl Heuer. --- diff --git a/src/wc.c b/src/wc.c index 34706ae675..7dca0f37d9 100644 --- a/src/wc.c +++ b/src/wc.c @@ -238,6 +238,28 @@ wc (fd, file) } } } + else if (!print_words) + { + /* Use a separate loop when counting only lines or lines and bytes -- + but not words. */ + while ((bytes_read = safe_read (fd, buf, BUFFER_SIZE)) > 0) + { + register char *p = buf; + + chars += bytes_read; + do + { + if (*p++ == '\n') + lines++; + } + while (--bytes_read); + } + if (bytes_read < 0) + { + error (0, errno, "%s", file); + exit_status = 1; + } + } else { while ((bytes_read = safe_read (fd, buf, BUFFER_SIZE)) > 0)