12785 grep -h ignored with -r

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

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.