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;