Added error checking for edit commands; only a beginning address can be
authorMark Whitley <markw@lineo.com>
Fri, 14 Jul 2000 00:13:52 +0000 (00:13 -0000)
committerMark Whitley <markw@lineo.com>
Fri, 14 Jul 2000 00:13:52 +0000 (00:13 -0000)
specified.

editors/sed.c
sed.c

index 1eea128d5e36d8cde6c8ec4048bb44fa15654333..115783f0916973e342439094695d73c2af9ebeb0 100644 (file)
@@ -361,8 +361,11 @@ static void parse_cmd_str(struct sed_cmd *sed_cmd, const char *cmdstr)
                parse_subst_cmd(sed_cmd, &cmdstr[idx]);
        
        /* special-case handling for (a)ppend, (i)nsert, and (c)hange */
-       if (strchr("aic", cmdstr[idx]))
+       if (strchr("aic", cmdstr[idx])) {
+               if (sed_cmd->end_line || sed_cmd->end_match)
+                       fatalError("only a beginning address can be specified for edit commands\n");
                parse_edit_cmd(sed_cmd, &cmdstr[idx]);
+       }
 }
 
 static void add_cmd_str(const char *cmdstr)
diff --git a/sed.c b/sed.c
index 1eea128d5e36d8cde6c8ec4048bb44fa15654333..115783f0916973e342439094695d73c2af9ebeb0 100644 (file)
--- a/sed.c
+++ b/sed.c
@@ -361,8 +361,11 @@ static void parse_cmd_str(struct sed_cmd *sed_cmd, const char *cmdstr)
                parse_subst_cmd(sed_cmd, &cmdstr[idx]);
        
        /* special-case handling for (a)ppend, (i)nsert, and (c)hange */
-       if (strchr("aic", cmdstr[idx]))
+       if (strchr("aic", cmdstr[idx])) {
+               if (sed_cmd->end_line || sed_cmd->end_match)
+                       fatalError("only a beginning address can be specified for edit commands\n");
                parse_edit_cmd(sed_cmd, &cmdstr[idx]);
+       }
 }
 
 static void add_cmd_str(const char *cmdstr)