[dev] [sbase] [PATCH 2/3] grep: Fix exit status with -F when last line doesn't match

From: Michael Forney <mforney_AT_mforney.org>
Date: Fri, 13 May 2016 23:34:51 -0700

Test case:

if printf '%s\n' foo bar | ./grep -F foo >/dev/null ; then
        echo pass
else
        echo fail
fi
---
 grep.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/grep.c b/grep.c
index ae23967..fb911ff 100644
--- a/grep.c
+++ b/grep.c
_AT_@ -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. */
_AT_@ -149,7 +149,7 @@ grep(FILE *fp, const char *str)
 				puts(buf);
 				break;
 			}
-			match = Match;
+			result = Match;
 			break;
 		}
 	}
_AT_@ -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
-- 
2.6.2
Received on Sat May 14 2016 - 08:34:51 CEST

This archive was generated by hypermail 2.3.0 : Sat May 14 2016 - 08:36:20 CEST