From 0545bfa841540a0d7d7e2953bc205eda64144c2e Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Mon, 13 May 2019 16:29:34 +0200 Subject: [PATCH] sed: fix /regex/,+N match triggering only once, closes 11871 function old new delta process_files 2235 2246 +11 Signed-off-by: Denys Vlasenko --- 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" \