12785 grep -h ignored with -r

Review Request #2563 — Created May 23, 2020 and submitted

ptribble
illumos-gate
12785
general
Following the update of grep in #8858, grep -hr no longer works as expected.

A recursive grep (grep -r) will show matched filenames by default, but it's expected that -h will disable this. That's true of the old /usr/bin/grep and of GNU grep, but not of the old xpg4 grep and hence our current grep, which displays matching filenames if both -h and -r are given

Looking at the code, recursion sets outfn to 1. In the old grep, this was considered along with hflag at the output stage, allowing -h to override. This is no longer the case.

Manually tested that the new grep displays filenames (or not) as expected depending on whether -h. -H, or neither, are given along with -r.

Also updated the test suite to add tests for -h/-H and -r. The new grep passes, as does GNU grep; the current grep fails the -hr test.

yuripv
  1. 
      
  2. usr/src/cmd/grep/grep.c (Diff revision 1)
     
     

    May be drop the "Solaris" remark as it's really not "solaris" specific?

    1. I'm not sure. I read these as historical commentary, and in that context "Solaris" is correct.

  3. 
      
citrus
  1. Ship It!
  2. 
      
ptribble
Review request changed

Status: Closed (submitted)

Loading...