From: Denys Vlasenko Date: Tue, 24 Apr 2012 17:27:34 +0000 (+0200) Subject: sed: slightly better fix for prev commit's problem X-Git-Tag: 1_21_0~189 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=b84dafb5e57462c91df48456dfc5bb7c811e7a24;p=oweals%2Fbusybox.git sed: slightly better fix for prev commit's problem Signed-off-by: Denys Vlasenko --- diff --git a/editors/sed.c b/editors/sed.c index 429c1ed58..3ee8edc43 100644 --- a/editors/sed.c +++ b/editors/sed.c @@ -741,9 +741,9 @@ static int do_subst_command(sed_cmd_t *sed_cmd, char **line_p) * The match_count check is so not to break * echo "hi" | busybox sed 's/^/!/g' */ - if (!G.regmatch[0].rm_so && !G.regmatch[0].rm_eo && match_count && *line) { + if (!G.regmatch[0].rm_so && !G.regmatch[0].rm_eo && match_count) { pipe_putc(*line++); - continue; + goto next; } match_count++; @@ -755,7 +755,7 @@ static int do_subst_command(sed_cmd_t *sed_cmd, char **line_p) ) { for (i = 0; i < G.regmatch[0].rm_eo; i++) pipe_putc(*line++); - continue; + goto next; } /* print everything before the match */ @@ -773,7 +773,7 @@ static int do_subst_command(sed_cmd_t *sed_cmd, char **line_p) /* if we're not doing this globally, get out now */ if (sed_cmd->which_match != 0) break; - + next: if (*line == '\0') break;