From owner-freebsd-current Sat Sep 9 05:05:44 1995 Return-Path: current-owner Received: (from majordom@localhost) by freefall.freebsd.org (8.6.12/8.6.6) id FAA15580 for current-outgoing; Sat, 9 Sep 1995 05:05:44 -0700 Received: from prosun.first.gmd.de (prosun.first.gmd.de [192.35.150.136]) by freefall.freebsd.org (8.6.12/8.6.6) with SMTP id FAA15574 for ; Sat, 9 Sep 1995 05:05:31 -0700 Received: from freebsd.first.gmd.de by prosun.first.gmd.de (4.1/SMI-4.1) id AA29837; Sat, 9 Sep 95 14:05:23 +0200 Received: by freebsd.first.gmd.de (OAA18842); Sat, 9 Sep 1995 14:04:54 +0159 Date: Sat, 9 Sep 1995 14:04:54 +0159 From: Wolfram Schneider Message-Id: <199509091205.OAA18842@freebsd.first.gmd.de> To: current@freebsd.org, wosch@freebsd.first.gmd.de Subject: 20-40% faster wc(1) Sender: current-owner@freebsd.org Precedence: bulk --- 1.1 1995/09/09 11:30:35 +++ Makefile 1995/09/09 11:34:03 @@ -1,5 +1,6 @@ # @(#)Makefile 8.1 (Berkeley) 6/6/93 PROG= wc +CFLAGS+= -DOPT .include --- 1.1 1995/09/09 11:30:35 +++ wc.c 1995/09/09 11:33:01 @@ -122,6 +122,14 @@ struct stat sb; int fd; u_char buf[MAXBSIZE]; +#ifdef OPT + u_char spbuf[256]; /* buffer for isspace lookup */ + + for (ch = 0; ch < 256; ch++) + spbuf[ch] = isspace(ch); +#define ISSPACE(x) spbuf[x] +#endif + fd = STDIN_FILENO; linect = wordct = charct = 0; @@ -183,7 +191,11 @@ ch = *p++; if (ch == '\n') ++linect; - if (isspace(ch)) +#ifdef OPT + if (ISSPACE(ch)) +#else + if (isspace(ch)) +#endif gotsp = 1; else if (gotsp) { gotsp = 0;