From b84dafb5e57462c91df48456dfc5bb7c811e7a24 Mon Sep 17 00:00:00 2001
From: Denys Vlasenko <vda.linux@googlemail.com>
Date: Tue, 24 Apr 2012 19:27:34 +0200
Subject: sed: slightly better fix for prev commit's problem

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---
 editors/sed.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

(limited to 'editors')

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;
 
-- 
cgit v1.2.3