[git commit] sed: fix /regex/, +N match triggering only once, closes 11871

Denys Vlasenko vda.linux at googlemail.com
Mon May 13 14:30:39 UTC 2019


commit: https://git.busybox.net/busybox/commit/?id=0545bfa841540a0d7d7e2953bc205eda64144c2e
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

function                                             old     new   delta
process_files                                       2235    2246     +11

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 editors/sed.c       | 2 ++
 testsuite/sed.tests | 6 ++++++
 2 files changed, 8 insertions(+)

diff --git a/editors/sed.c b/editors/sed.c
index bb39de149..57d3dda16 100644
--- a/editors/sed.c
+++ b/editors/sed.c
@@ -1097,6 +1097,8 @@ static void process_files(void)
 		int old_matched, matched;
 
 		old_matched = sed_cmd->in_match;
+		if (!old_matched)
+			sed_cmd->end_line = sed_cmd->end_line_orig;
 
 		/* Determine if this command matches this line: */
 
diff --git a/testsuite/sed.tests b/testsuite/sed.tests
index 675cb4f10..67ff87e93 100755
--- a/testsuite/sed.tests
+++ b/testsuite/sed.tests
@@ -361,6 +361,12 @@ testing "sed /regex/,+N{...} addresses work" \
 	"" \
 	"1\n2\n3\n4\n5\n"
 
+testing "sed /regex/,+N{...} addresses work 2" \
+	"sed -n '/a/,+1 p'" \
+	"a\n1\na\n2\na\n3\n" \
+	"" \
+	"a\n1\nc\nc\na\n2\na\n3\n"
+
 testing "sed /regex/,+N{...} -i works" \
 	"cat - >input2; sed /^4/,+2{d} -i input input2; echo \$?; cat input input2; rm input2" \
 	"0\n""1\n2\n3\n7\n8\n""1\n2\n7\n8\n" \


More information about the busybox-cvs mailing list