From 2971ef1730db326e20e84ae8882d326f5aa09235 Mon Sep 17 00:00:00 2001 From: Glenn L McGrath Date: Tue, 18 Mar 2003 01:19:23 +0000 Subject: Fix a bug that corrupted the string followed commands that had no arguments (Closes #1304) --- editors/sed.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'editors/sed.c') diff --git a/editors/sed.c b/editors/sed.c index e1242671e..7ff81da79 100644 --- a/editors/sed.c +++ b/editors/sed.c @@ -377,16 +377,13 @@ static int parse_file_cmd(sed_cmd_t *sed_cmd, const char *filecmdstr) return idx + filenamelen; } - +/* + * Process the commands arguments + */ static char *parse_cmd_str(sed_cmd_t * const sed_cmd, char *cmdstr) { - /* if it was a single-letter command that takes no arguments (such as 'p' - * or 'd') all we need to do is increment the index past that command */ - if (strchr("nNpPqd=", sed_cmd->cmd)) { - cmdstr++; - } /* handle (s)ubstitution command */ - else if (sed_cmd->cmd == 's') { + if (sed_cmd->cmd == 's') { cmdstr += parse_subst_cmd(sed_cmd, cmdstr); } /* handle edit cmds: (a)ppend, (i)nsert, and (c)hange */ @@ -401,7 +398,10 @@ static char *parse_cmd_str(sed_cmd_t * const sed_cmd, char *cmdstr) error_msg_and_die("Command only uses one address"); cmdstr += parse_file_cmd(sed_cmd, cmdstr); } - else { + /* if it wasnt a single-letter command that takes no arguments + * then it must be an invalid command. + */ + else if (strchr("nNpPqd=", sed_cmd->cmd) == 0) { error_msg_and_die("Unsupported command %c", sed_cmd->cmd); } -- cgit v1.2.3