git: a2d78713171c - main - sed: The change ("c") command should start a new cycle.

From: Warner Losh <imp_at_FreeBSD.org>
Date: Tue, 17 Dec 2024 22:34:26 UTC
The branch main has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=a2d78713171cf138b5ae50d61f82df1af7574c95

commit a2d78713171cf138b5ae50d61f82df1af7574c95
Author:     Valeriy Ushakov <uwe@netbsd.org>
AuthorDate: 2024-12-17 22:27:01 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2024-12-17 22:34:06 +0000

    sed: The change ("c") command should start a new cycle.
    
    The "c" command should start the next cycle as clarified in POSIX 2024.
    This is also consistent with historical and gnu sed behavior.
    
    This patch is from OpenBSD by way of NetBSD with a tweak to the man page
    date by me.
    
    Confirmed the test case in the bug now works.
    
    PR:             271817
    Obtained from:  NetBSD (1.39 uwe), OpenBSD (1.39 millert)
    Sponsored by:   Netflix
---
 usr.bin/sed/process.c | 2 +-
 usr.bin/sed/sed.1     | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/usr.bin/sed/process.c b/usr.bin/sed/process.c
index ddf9a976bc46..d06dc09542e1 100644
--- a/usr.bin/sed/process.c
+++ b/usr.bin/sed/process.c
@@ -134,7 +134,7 @@ redirect:
 				psl = 0;
 				if (cp->a2 == NULL || lastaddr || lastline())
 					(void)fprintf(outfile, "%s", cp->t);
-				break;
+				goto new;
 			case 'd':
 				pd = 1;
 				goto new;
diff --git a/usr.bin/sed/sed.1 b/usr.bin/sed/sed.1
index 02bfbf0e9f31..345f673310d8 100644
--- a/usr.bin/sed/sed.1
+++ b/usr.bin/sed/sed.1
@@ -28,7 +28,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.Dd April 8, 2021
+.Dd December 17, 2024
 .Dt SED 1
 .Os
 .Sh NAME
@@ -372,7 +372,7 @@ If the label is not specified, branch to the end of the script.
 .Pp
 .It [2addr]c\e
 .It text
-Delete the pattern space.
+Delete the pattern space and start the next cycle.
 With 0 or 1 address or at the end of a 2-address range,
 .Em text
 is written to the standard output.