diff options
-rw-r--r-- | editors/sed.c | 5 | ||||
-rw-r--r-- | sed.c | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/editors/sed.c b/editors/sed.c index a18f6e522..897c290d5 100644 --- a/editors/sed.c +++ b/editors/sed.c | |||
@@ -622,9 +622,10 @@ static void process_file(FILE *file) | |||
622 | if (sed_cmds[i].beg_match && sed_cmds[i].end_match) { | 622 | if (sed_cmds[i].beg_match && sed_cmds[i].end_match) { |
623 | if (still_in_range || regexec(sed_cmds[i].beg_match, line, 0, NULL, 0) == 0) { | 623 | if (still_in_range || regexec(sed_cmds[i].beg_match, line, 0, NULL, 0) == 0) { |
624 | line_altered += do_sed_command(&sed_cmds[i], line); | 624 | line_altered += do_sed_command(&sed_cmds[i], line); |
625 | still_in_range = 1; | 625 | if (still_in_range && regexec(sed_cmds[i].end_match, line, 0, NULL, 0) == 0) |
626 | if (regexec(sed_cmds[i].end_match, line, 0, NULL, 0) == 0) | ||
627 | still_in_range = 0; | 626 | still_in_range = 0; |
627 | else | ||
628 | still_in_range = 1; | ||
628 | } | 629 | } |
629 | } | 630 | } |
630 | 631 | ||
@@ -622,9 +622,10 @@ static void process_file(FILE *file) | |||
622 | if (sed_cmds[i].beg_match && sed_cmds[i].end_match) { | 622 | if (sed_cmds[i].beg_match && sed_cmds[i].end_match) { |
623 | if (still_in_range || regexec(sed_cmds[i].beg_match, line, 0, NULL, 0) == 0) { | 623 | if (still_in_range || regexec(sed_cmds[i].beg_match, line, 0, NULL, 0) == 0) { |
624 | line_altered += do_sed_command(&sed_cmds[i], line); | 624 | line_altered += do_sed_command(&sed_cmds[i], line); |
625 | still_in_range = 1; | 625 | if (still_in_range && regexec(sed_cmds[i].end_match, line, 0, NULL, 0) == 0) |
626 | if (regexec(sed_cmds[i].end_match, line, 0, NULL, 0) == 0) | ||
627 | still_in_range = 0; | 626 | still_in_range = 0; |
627 | else | ||
628 | still_in_range = 1; | ||
628 | } | 629 | } |
629 | } | 630 | } |
630 | 631 | ||