aboutsummaryrefslogtreecommitdiff
path: root/findutils/grep.c
diff options
context:
space:
mode:
authorJames Hogan <james.hogan@imgtec.com>2013-05-07 12:32:21 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2013-05-16 14:47:05 +0200
commit5fc0585c01a6b87432f344c98eb544e116c2d1d4 (patch)
tree6695af7cfe19d48e9e9d0c8cedc93b7e73ba6b28 /findutils/grep.c
parentaa94130f744ae229e5392eb4e303a9805a9963fb (diff)
downloadbusybox-5fc0585c01a6b87432f344c98eb544e116c2d1d4.tar.gz
grep: fix grep -x to not set REG_NOSUB
When -F isn't specified (and !ENABLE_EXTRA_COMPAT), grep -x uses regexec's regmatch_t output to determine if the match was the entire line. However it also set the REG_NOSUB flag which makes it ignore the regmatch_t argument. Add an exception to the setting of REG_NOSUB for OPT_x and add some test cases to test the behaviour of -x. Signed-off-by: James Hogan <james.hogan@imgtec.com> Cc: Natanael Copa <ncopa@alpinelinux.org> Cc: Denys Vlasenko <vda.linux@googlemail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'findutils/grep.c')
-rw-r--r--findutils/grep.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/findutils/grep.c b/findutils/grep.c
index b808ad92b..b8ad1bf8f 100644
--- a/findutils/grep.c
+++ b/findutils/grep.c
@@ -716,7 +716,7 @@ int grep_main(int argc UNUSED_PARAM, char **argv)
option_mask32 |= OPT_F;
#if !ENABLE_EXTRA_COMPAT
- if (!(option_mask32 & (OPT_o | OPT_w)))
+ if (!(option_mask32 & (OPT_o | OPT_w | OPT_x)))
reflags = REG_NOSUB;
#endif