From 5fc0585c01a6b87432f344c98eb544e116c2d1d4 Mon Sep 17 00:00:00 2001 From: James Hogan Date: Tue, 7 May 2013 12:32:21 +0100 Subject: 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 Cc: Natanael Copa Cc: Denys Vlasenko Signed-off-by: Denys Vlasenko --- findutils/grep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'findutils/grep.c') 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 -- cgit v1.2.3