plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

commit 1a84af59e08c39200775a68b6af7175a6bcd044e
parent 285b4f85c0dff0aa5019ee93c17d1f8c734eb030
Author: rsc <devnull@localhost>
Date:   Thu, 25 Mar 2004 23:25:45 +0000

Guess what?  More anonymous unions!

Diffstat:
Msrc/cmd/grep/grep.h | 4++--
Msrc/cmd/grep/main.c | 18+++++++++---------
2 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/src/cmd/grep/grep.h b/src/cmd/grep/grep.h @@ -76,12 +76,12 @@ EXTERN union * if a line requires multiple reads, we keep shifting * buf down into pre and then do another read into * buf. so you'll get the last 16-32k of the matching line. - * if pre were smaller than buf you'd get a suffix of the + * if h were smaller than buf you'd get a suffix of the * line with a hole cut out. */ uchar pre[16*1024]; /* to save to previous '\n' */ uchar buf[16*1024]; /* input buffer */ - }; + } u; } u; EXTERN char *filename; diff --git a/src/cmd/grep/main.c b/src/cmd/grep/main.c @@ -115,27 +115,27 @@ search(char *file, int flag) eof = 0; empty = 1; nl = 0; - lp = u.buf; + lp = u.u.buf; bol = lp; loop0: n = lp-bol; - if(n > sizeof(u.pre)) - n = sizeof(u.pre); - memmove(u.buf-n, bol, n); - bol = u.buf-n; - n = read(fid, u.buf, sizeof(u.buf)); + if(n > sizeof(u.u.pre)) + n = sizeof(u.u.pre); + memmove(u.u.buf-n, bol, n); + bol = u.u.buf-n; + n = read(fid, u.u.buf, sizeof(u.u.buf)); /* if file has no final newline, simulate one to emit matches to last line */ if(n > 0) { empty = 0; - nl = u.buf[n-1]=='\n'; + nl = u.u.buf[n-1]=='\n'; } else { if(n < 0){ fprint(2, "grep: read error on %s: %r\n", file); return count != 0; } if(!eof && !nl && !empty) { - u.buf[0] = '\n'; + u.u.buf[0] = '\n'; n = 1; eof = 1; } @@ -152,7 +152,7 @@ loop0: Bflush(&bout); return count != 0; } - lp = u.buf; + lp = u.u.buf; elp = lp+n; if(flag & Iflag) goto loopi;