Ignore blanks before the first address and before the command.
authorMatt Kraai <kraai@debian.org>
Fri, 21 Dec 2001 16:04:12 +0000 (16:04 -0000)
committerMatt Kraai <kraai@debian.org>
Fri, 21 Dec 2001 16:04:12 +0000 (16:04 -0000)
editors/sed.c
testsuite/sed/sed-accepts-blanks-before-command [new file with mode: 0644]

index 7f765842c6cad402fd7459f3e673d16d32c6d2d9..fe1c0dbae1ed32263d324bff1e1ce4c1d032d629 100644 (file)
@@ -414,6 +414,10 @@ static char *parse_cmd_str(struct sed_cmd * const sed_cmd, const char *const cmd
         *            part1 part2  part3
         */
 
+       /* skip initial whitespace */
+       while (isspace(cmdstr[idx]))
+               idx++;
+
        /* first part (if present) is an address: either a number or a /regex/ */
        if (isdigit(cmdstr[idx]) || cmdstr[idx] == '/')
                idx = get_address(sed_cmd, cmdstr, &sed_cmd->beg_line, &sed_cmd->beg_match);
@@ -422,6 +426,10 @@ static char *parse_cmd_str(struct sed_cmd * const sed_cmd, const char *const cmd
        if (cmdstr[idx] == ',')
                idx += get_address(sed_cmd, &cmdstr[++idx], &sed_cmd->end_line, &sed_cmd->end_match);
 
+       /* skip whitespace before the command */
+       while (isspace(cmdstr[idx]))
+               idx++;
+
        /* last part (mandatory) will be a command */
        if (cmdstr[idx] == '\0')
                error_msg_and_die("missing command");
diff --git a/testsuite/sed/sed-accepts-blanks-before-command b/testsuite/sed/sed-accepts-blanks-before-command
new file mode 100644 (file)
index 0000000..9597c2f
--- /dev/null
@@ -0,0 +1 @@
+busybox sed -e '1 d' </dev/null