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" \