Fix empty line substitutions (noted by Joshua Hudson).
authorMatt Kraai <kraai@debian.org>
Tue, 23 Oct 2001 21:12:07 +0000 (21:12 -0000)
committerMatt Kraai <kraai@debian.org>
Tue, 23 Oct 2001 21:12:07 +0000 (21:12 -0000)
editors/sed.c
sed.c

index 989df7cb4be609fa173e7e770db13bd26d8c7c25..709fb13a893d77fc6631b6c89871ef2acc857792 100644 (file)
@@ -589,8 +589,8 @@ static int do_subst_command(const struct sed_cmd *sed_cmd, char **line)
 
        /* and now, as long as we've got a line to try matching and if we can match
         * the search string, we make substitutions */
-       while (*hackline && (regexec(sed_cmd->sub_match, hackline,
-                                       sed_cmd->num_backrefs+1, regmatch, 0) == 0) ) {
+       while ((*hackline || !altered) && (regexec(sed_cmd->sub_match, hackline,
+                                       sed_cmd->num_backrefs+1, regmatch, 0) != REG_NOMATCH) ) {
                int i;
 
                /* print everything before the match */
diff --git a/sed.c b/sed.c
index 989df7cb4be609fa173e7e770db13bd26d8c7c25..709fb13a893d77fc6631b6c89871ef2acc857792 100644 (file)
--- a/sed.c
+++ b/sed.c
@@ -589,8 +589,8 @@ static int do_subst_command(const struct sed_cmd *sed_cmd, char **line)
 
        /* and now, as long as we've got a line to try matching and if we can match
         * the search string, we make substitutions */
-       while (*hackline && (regexec(sed_cmd->sub_match, hackline,
-                                       sed_cmd->num_backrefs+1, regmatch, 0) == 0) ) {
+       while ((*hackline || !altered) && (regexec(sed_cmd->sub_match, hackline,
+                                       sed_cmd->num_backrefs+1, regmatch, 0) != REG_NOMATCH) ) {
                int i;
 
                /* print everything before the match */