This way, people don't have to do double negatives in their head.
---
 grep.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/grep.c b/grep.c
index 64ffbe2..ae23967 100644
--- a/grep.c
+++ b/grep.c
@@ -114,23 +114,23 @@ grep(FILE *fp, const char *str)
                if (len && buf[len - 1] == '\n')
                        buf[len - 1] = '\0';
                SLIST_FOREACH(pnode, &phead, entry) {
-                       if (!Fflag) {
-                               if (regexec(&pnode->preg, buf, 0, NULL, 0) ^ 
vflag)
-                                       continue;
-                       } else {
-                               if (!xflag) {
-                                       if ((iflag ? strcasestr : strstr)(buf, 
pnode->pattern))
+                       if (Fflag) {
+                               if (xflag) {
+                                       if (!(iflag ? strcasecmp : strcmp)(buf, 
pnode->pattern))
                                                match = Match;
                                        else
                                                match = NoMatch;
                                } else {
-                                       if (!(iflag ? strcasecmp : strcmp)(buf, 
pnode->pattern))
+                                       if ((iflag ? strcasestr : strstr)(buf, 
pnode->pattern))
                                                match = Match;
                                        else
                                                match = NoMatch;
                                }
                                if (match ^ vflag)
                                        continue;
+                       } else {
+                               if (regexec(&pnode->preg, buf, 0, NULL, 0) ^ 
vflag)
+                                       continue;
                        }
                        switch (mode) {
                        case 'c':
-- 
2.6.2


Reply via email to