sed: fix /regex/,+N match triggering only once, closes 11871
function old new delta process_files 2235 2246 +11 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
15021f393d
commit
0545bfa841
@ -1097,6 +1097,8 @@ static void process_files(void)
|
|||||||
int old_matched, matched;
|
int old_matched, matched;
|
||||||
|
|
||||||
old_matched = sed_cmd->in_match;
|
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: */
|
/* Determine if this command matches this line: */
|
||||||
|
|
||||||
|
@ -361,6 +361,12 @@ testing "sed /regex/,+N{...} addresses work" \
|
|||||||
"" \
|
"" \
|
||||||
"1\n2\n3\n4\n5\n"
|
"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" \
|
testing "sed /regex/,+N{...} -i works" \
|
||||||
"cat - >input2; sed /^4/,+2{d} -i input input2; echo \$?; cat input input2; rm input2" \
|
"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" \
|
"0\n""1\n2\n3\n7\n8\n""1\n2\n7\n8\n" \
|
||||||
|
Loading…
Reference in New Issue
Block a user