grep: fix echo "aa" | busybox grep -F -w "a" (should not match)

function                                             old     new   delta
grep_file                                           1461    1470      +9

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2018-03-29 18:03:50 +02:00
parent 3be4b9b0de
commit 03fd7e06f8
2 changed files with 7 additions and 1 deletions

View File

@ -352,7 +352,7 @@ static int grep_file(FILE *file)
goto opt_f_not_found;
} else
if (option_mask32 & OPT_w) {
char c = (match != str) ? match[-1] : ' ';
char c = (match != line) ? match[-1] : ' ';
if (!isalnum(c) && c != '_') {
c = match[strlen(gl->pattern)];
if (!c || (!isalnum(c) && c != '_'))

View File

@ -165,6 +165,12 @@ testing "grep -w word doesn't match wordword" \
"wordword\n" \
""
testing "grep -F -w w doesn't match ww" \
"grep -F -w w input" \
"" \
"ww\n" \
""
testing "grep -w word match second word" \
"grep -w word input" \
"bword,word\n""wordb,word\n""bwordb,word\n" \