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
This commit is contained in:
Michael Forney 2016-05-13 23:34:51 -07:00 committed by sin
parent 8636c956d9
commit e6b3af07cf
1 changed files with 4 additions and 4 deletions

8
grep.c
View File

@ -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