commit e6b3af07cf5488dde5da9bc7f15353c06216e51c
Author:     Michael Forney <[email protected]>
AuthorDate: Fri May 13 23:34:51 2016 -0700
Commit:     sin <[email protected]>
CommitDate: Sat May 14 12:58:38 2016 +0100

    grep: Fix exit status with -F when last line doesn't match
    
    Test case:
    
    if printf '%s\n' foo bar | ./grep -F foo >/dev/null ; then
        echo pass
    else
        echo fail
    fi

diff --git a/grep.c b/grep.c
index ae23967..fb911ff 100644
--- a/grep.c
+++ b/grep.c
@@ -107,7 +107,7 @@ grep(FILE *fp, const char *str)
        ssize_t len = 0;
        long c = 0, n;
        struct pattern *pnode;
-       int match = NoMatch;
+       int match, result = NoMatch;
 
        for (n = 1; (len = getline(&buf, &size, fp)) > 0; n++) {
                /* Remove the trailing newline if one is present. */
@@ -149,7 +149,7 @@ grep(FILE *fp, const char *str)
                                puts(buf);
                                break;
                        }
-                       match = Match;
+                       result = Match;
                        break;
                }
        }
@@ -158,9 +158,9 @@ grep(FILE *fp, const char *str)
 end:
        if (ferror(fp)) {
                weprintf("%s: read error:", str);
-               match = Error;
+               result = Error;
        }
-       return match;
+       return result;
 }
 
 static void

Reply via email to