HomeFreeBSD

grep: fix null pattern and empty pattern file behavior

Description

grep: fix null pattern and empty pattern file behavior

The null pattern semantics were terrible because I tried to match gnugrep,
but I got it wrong. Let's unwind that:

  • The null pattern should match every line if neither -w nor -x.
  • The null pattern should match empty lines if -x.
  • The null pattern should not match any lines if -w.

The first two will stop processing (shortcut) even if additional patterns
are specified. In any other case, we will continue processing other
patterns. If no other patterns are specified beside a null pattern, then
we match if neither -w nor -x or set and do not match if either of those
are specified.

The justification for -w is that it should match on a whole word, but the
null pattern does not have a whole word to match on.

Empty pattern files should never match anything, and more importantly, -v
should cause everything to be written.

PR: 253209
Approved by: re (gjb)

(cherry picked from commit f823c6dc730b0dd08b54a53be1d8fd587eee7021)
(cherry picked from commit 574d0dfae5011a766aa967f1d1675ddf7b535936)

Details

Provenance
kevansAuthored on Feb 11 2021, 3:10 PM
Parents
rG0b54d2764737: Enable pvscsi and vmx in arm64 GENERIC
Branches
Unknown
Tags
Unknown