← Commit list

5fc0585c0

James Hogan
James Hogan
2013-05-16
SUCCESS Duration: 182s

Subject

grep: fix grep -x to not set REG_NOSUB

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

findutils/grep.c+1 -1
@@ -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
testsuite/grep.tests+14 -0
@@ -82,6 +82,20 @@ testing "grep -F handles -i" "grep -F -i foo input ; echo \$?" \
testing "grep can read regexps from stdin" "grep -f - input ; echo \$?" \
"two\nthree\n0\n" "tw\ntwo\nthree\n" "tw.\nthr\n"
+# -x (whole line match)
+testing "grep -x (full match)" "grep -x foo input ; echo \$?" \
+ "foo\n0\n" "foo\n" ""
+testing "grep -x (partial match 1)" "grep -x foo input ; echo \$?" \
+ "1\n" "foo bar\n" ""
+testing "grep -x (partial match 2)" "grep -x foo input ; echo \$?" \
+ "1\n" "bar foo\n" ""
+testing "grep -x -F (full match)" "grep -x -F foo input ; echo \$?" \
+ "foo\n0\n" "foo\n" ""
+testing "grep -x -F (partial match 1)" "grep -x -F foo input ; echo \$?" \
+ "1\n" "foo bar\n" ""
+testing "grep -x -F (partial match 2)" "grep -x -F foo input ; echo \$?" \
+ "1\n" "bar foo\n" ""
+
optional FEATURE_GREP_EGREP_ALIAS
testing "grep -E supports extended regexps" "grep -E fo+" "foo\n" "" \
"b\ar\nfoo\nbaz"