[Bug 195763] bsdgrep, empty matches and -o

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Mon Apr 3 23:17:28 UTC 2017


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=195763

--- Comment #7 from commit-hook at freebsd.org ---
A commit references this bug:

Author: emaste
Date: Mon Apr  3 23:16:51 UTC 2017
New revision: 316477
URL: https://svnweb.freebsd.org/changeset/base/316477

Log:
  bsdgrep: fix matching behaviour

  - Set REG_NOTBOL if we've already matched beginning of line and we're
    examining later parts

  - For each pattern we examine, apply it to the remaining bits of the
    line rather than (potentially) smaller subsets

  - Check for REG_NOSUB after we've looked at all patterns initially
    matching the line

  - Keep track of the last match we made to later determine if we're
    simply not matching any longer or if we need to proceed another byte
    because we hit a zero-length match

  - Match the earliest and longest bit of each line before moving the
    beginning of what we match to further in the line, past the end of the
    longest match; this generally matches how gnugrep(1) seems to behave,
    and seems like pretty good behavior to me

  - Finally, bail out of printing any matches if we were set to print all
    (empty pattern) but -o (output matches) was set

  PR:           195763, 180990, 197555, 197531, 181263, 209116
  Submitted by: "Kyle Evans" <kevans91 at ksu.edu>
  Reviewed by:  cem
  MFC after:    1 month
  Relnotes:     Yes
  Differential Revision:        https://reviews.freebsd.org/D10104

Changes:
  head/usr.bin/grep/util.c

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list