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;

Reply via email to