diff options
-rw-r--r-- | editors/sed.c | 4 | ||||
-rw-r--r-- | sed.c | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/editors/sed.c b/editors/sed.c index 989df7cb4..709fb13a8 100644 --- a/editors/sed.c +++ b/editors/sed.c | |||
@@ -589,8 +589,8 @@ static int do_subst_command(const struct sed_cmd *sed_cmd, char **line) | |||
589 | 589 | ||
590 | /* and now, as long as we've got a line to try matching and if we can match | 590 | /* and now, as long as we've got a line to try matching and if we can match |
591 | * the search string, we make substitutions */ | 591 | * the search string, we make substitutions */ |
592 | while (*hackline && (regexec(sed_cmd->sub_match, hackline, | 592 | while ((*hackline || !altered) && (regexec(sed_cmd->sub_match, hackline, |
593 | sed_cmd->num_backrefs+1, regmatch, 0) == 0) ) { | 593 | sed_cmd->num_backrefs+1, regmatch, 0) != REG_NOMATCH) ) { |
594 | int i; | 594 | int i; |
595 | 595 | ||
596 | /* print everything before the match */ | 596 | /* print everything before the match */ |
@@ -589,8 +589,8 @@ static int do_subst_command(const struct sed_cmd *sed_cmd, char **line) | |||
589 | 589 | ||
590 | /* and now, as long as we've got a line to try matching and if we can match | 590 | /* and now, as long as we've got a line to try matching and if we can match |
591 | * the search string, we make substitutions */ | 591 | * the search string, we make substitutions */ |
592 | while (*hackline && (regexec(sed_cmd->sub_match, hackline, | 592 | while ((*hackline || !altered) && (regexec(sed_cmd->sub_match, hackline, |
593 | sed_cmd->num_backrefs+1, regmatch, 0) == 0) ) { | 593 | sed_cmd->num_backrefs+1, regmatch, 0) != REG_NOMATCH) ) { |
594 | int i; | 594 | int i; |
595 | 595 | ||
596 | /* print everything before the match */ | 596 | /* print everything before the match */ |