Hello tech@,

As reported and fixed by pfg@freebsd.
Fixes the following case:
% echo z | gsed -n -e 's/^a*/b/2p'
# empty -- correct
% echo z |  sed -n -e 's/^a*/b/2p'
z # incorrect

Fix in FreeBSD r302973

OK?

martijn@

Index: process.c
===================================================================
RCS file: /cvs/src/usr.bin/sed/process.c,v
retrieving revision 1.28
diff -u -p -r1.28 process.c
--- process.c   30 May 2016 18:10:29 -0000      1.28
+++ process.c   10 Oct 2016 19:48:58 -0000
@@ -404,7 +404,7 @@ substitute(struct s_command *cp)
            regexec_e(re, ps, REG_NOTBOL, 0, le, psl));
 
        /* Did not find the requested number of matches. */
-       if (n > 1)
+       if (n > 0)
                return (0);
 
        /* Copy the trailing retained string. */

Reply via email to