1. They're flags, not counters. Set to one instead of incrementing. 2. The G flag is useless and never checked. Remove it.
Index: grep.c =================================================================== RCS file: /cvs/src/usr.bin/grep/grep.c,v retrieving revision 1.48 diff -u -p -r1.48 grep.c --- grep.c 1 Dec 2014 06:36:04 -0000 1.48 +++ grep.c 9 Jan 2015 22:58:26 -0000 @@ -61,7 +61,6 @@ int Aflag; /* -A x: print x lines trai int Bflag; /* -B x: print x lines leading each match */ int Eflag; /* -E: interpret pattern as extended regexp */ int Fflag; /* -F: interpret pattern as list of fixed strings */ -int Gflag; /* -G: interpret pattern as basic regexp */ int Hflag; /* -H: always print filename header */ int Lflag; /* -L: only show names of files with no matches */ int Rflag; /* -R: recursively search directory trees */ @@ -242,26 +241,20 @@ main(int argc, char *argv[]) SLIST_INIT(&patfilelh); switch (__progname[0]) { case 'e': - Eflag++; + Eflag = 1; break; case 'f': - Fflag++; - break; - case 'g': - Gflag++; + Fflag = 1; break; #ifndef NOZ case 'z': - Zflag++; + Zflag = 1; switch(__progname[1]) { case 'e': - Eflag++; + Eflag = 1; break; case 'f': - Fflag++; - break; - case 'g': - Gflag++; + Fflag = 1; break; } break; @@ -308,19 +301,18 @@ main(int argc, char *argv[]) } break; case 'E': - Fflag = Gflag = 0; - Eflag++; + Fflag = 0; + Eflag = 1; break; case 'F': - Eflag = Gflag = 0; - Fflag++; + Eflag = 0; + Fflag = 1; break; case 'G': Eflag = Fflag = 0; - Gflag++; break; case 'H': - Hflag++; + Hflag = 1; break; case 'I': binbehave = BIN_FILE_SKIP; @@ -331,7 +323,7 @@ main(int argc, char *argv[]) break; case 'R': case 'r': - Rflag++; + Rflag = 1; break; case 'U': binbehave = BIN_FILE_BIN; @@ -342,7 +334,7 @@ main(int argc, char *argv[]) break; #ifndef NOZ case 'Z': - Zflag++; + Zflag = 1; break; #endif case 'a': Index: grep.h =================================================================== RCS file: /cvs/src/usr.bin/grep/grep.h,v retrieving revision 1.20 diff -u -p -r1.20 grep.h --- grep.h 1 Dec 2014 06:36:04 -0000 1.20 +++ grep.h 9 Jan 2015 22:55:46 -0000 @@ -63,7 +63,7 @@ typedef struct { extern int cflags, eflags; /* Command line flags */ -extern int Aflag, Bflag, Eflag, Fflag, Gflag, Hflag, Lflag, +extern int Aflag, Bflag, Eflag, Fflag, Hflag, Lflag, Rflag, Zflag, bflag, cflag, hflag, iflag, lflag, nflag, oflag, qflag, sflag, vflag, wflag, xflag;