diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2018-03-29 18:03:50 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2018-03-29 18:03:50 +0200 |
commit | 03fd7e06f854d385070a6fc9714f445727c359cd (patch) | |
tree | 4e1b3874319a795ce7adb296b97891b7d549188e | |
parent | 3be4b9b0dee790bc19314411f109d6dcb14f97dc (diff) | |
download | busybox-03fd7e06f854d385070a6fc9714f445727c359cd.tar.gz |
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>
-rw-r--r-- | findutils/grep.c | 2 | ||||
-rwxr-xr-x | testsuite/grep.tests | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/findutils/grep.c b/findutils/grep.c index fc6de4b69..88de0d4ef 100644 --- a/findutils/grep.c +++ b/findutils/grep.c @@ -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 != '_')) diff --git a/testsuite/grep.tests b/testsuite/grep.tests index ed4ba455e..d0b0d2767 100755 --- a/testsuite/grep.tests +++ b/testsuite/grep.tests @@ -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" \ |