commit e6b3af07cf5488dde5da9bc7f15353c06216e51c
parent 8636c956d954c589565fca21c820354bc19c4384
Author: Michael Forney <mforney@mforney.org>
Date: Fri, 13 May 2016 23:34:51 -0700
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
Diffstat:
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git 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