Otto Moerbeek wrote:
> On Sat, Dec 25, 2021 at 04:44:11PM -0800, Greg Steuck wrote:
> 
> > The separator doesn't get printed when I use this script on OpenBSD. It
> > does get printed on FreeBSD or if I used GNU grep. The issue appears to
> > be an off-by-one of some sort because removing the empty line makes the
> > separator disappear on both systems.
> > 
> > #!/bin/sh
> > 
> > grep -E -A6 '^(.w)?g' <<'EOF'
> > $wg
> > a
> > b
> > c
> > d
> > e
> > f
> > 
> > g = \ ds ->
> > h
> > i
> > j
> > EOF
> > 
> 
> Hi,
> 
> please include the expected output and the output seen in bug reports,
> it makes the initial diagnosis much easier. I now had to run your
> testcase on another system to see what you meant. 
> 
> BTW, on MacOS I do see the separator with your test, both with the
> empty line and without it.
> 
> ANyway, here's an attempt at a fix. Without much coffee, so beware.
> 
>       -Otto

Hi,

the fix works as intended here and is consistent with what I see on
Linux and FreeBSD.

Unfortunately the separator dashes are also printed in non-interactive 
mode (also on Linux and FreeBSD), so we need to check our grep usage.

I only found one in src (I haven't checked ports):
./sys/arch/amd64/conf/Makefile.amd64: \
    @[[ -n `objdump -D $@ | grep -A1 doreti_iret | sort | uniq -d` ]] || \

Attached is a regress test based on your fix (also for -B and -C) that
shows the behavior we have now and I think it's correct.

Best Regards,
Stefan

Index: regress/usr.bin/grep/Makefile
===================================================================
RCS file: /home/cvs/src/regress/usr.bin/grep/Makefile,v
retrieving revision 1.17
diff -u -p -u -p -r1.17 Makefile
--- regress/usr.bin/grep/Makefile       12 Dec 2012 15:11:25 -0000      1.17
+++ regress/usr.bin/grep/Makefile       26 Dec 2021 10:15:02 -0000
@@ -1,7 +1,7 @@
 # $OpenBSD: Makefile,v 1.17 2012/12/12 15:11:25 weerd Exp $
 
 REGRESS_TARGETS=t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 \
-       t18 t19 t20 t21 t22 t23 t24 t25 t26
+       t18 t19 t20 t21 t22 t23 t24 t25 t26 t27
 
 t1:
        grep t.s ${.CURDIR}/in | diff - ${.CURDIR}/t1.out
@@ -102,8 +102,13 @@ t25:
 t26:
        echo 'aaab' | grep -o 'a*' | head -n 10 | diff - ${.CURDIR}/t26.out
 
+t27:
+       grep -A1 'C' ${.CURDIR}/t27.in | diff - ${.CURDIR}/t27a.out
+       grep -B1 'C' ${.CURDIR}/t27.in | diff - ${.CURDIR}/t27b.out
+       grep -C1 'C' ${.CURDIR}/t27.in | diff - ${.CURDIR}/t27c.out
+
 
 .PHONY: t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20
-.PHONY: t21 t22 t23 t24 t25 t26
+.PHONY: t21 t22 t23 t24 t25 t26 t27
 
 .include <bsd.regress.mk>
Index: regress/usr.bin/grep/t27.in
===================================================================
RCS file: regress/usr.bin/grep/t27.in
diff -N regress/usr.bin/grep/t27.in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ regress/usr.bin/grep/t27.in 26 Dec 2021 10:32:02 -0000
@@ -0,0 +1,12 @@
+A
+B
+C
+D
+A
+B
+C
+D
+A
+B
+C
+D
Index: regress/usr.bin/grep/t27a.out
===================================================================
RCS file: regress/usr.bin/grep/t27a.out
diff -N regress/usr.bin/grep/t27a.out
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ regress/usr.bin/grep/t27a.out       26 Dec 2021 10:07:48 -0000
@@ -0,0 +1,8 @@
+C
+D
+--
+C
+D
+--
+C
+D
Index: regress/usr.bin/grep/t27b.out
===================================================================
RCS file: regress/usr.bin/grep/t27b.out
diff -N regress/usr.bin/grep/t27b.out
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ regress/usr.bin/grep/t27b.out       26 Dec 2021 10:10:21 -0000
@@ -0,0 +1,8 @@
+B
+C
+--
+B
+C
+--
+B
+C
Index: regress/usr.bin/grep/t27c.out
===================================================================
RCS file: regress/usr.bin/grep/t27c.out
diff -N regress/usr.bin/grep/t27c.out
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ regress/usr.bin/grep/t27c.out       26 Dec 2021 10:07:48 -0000
@@ -0,0 +1,11 @@
+B
+C
+D
+--
+B
+C
+D
+--
+B
+C
+D

Reply via email to