Ignore blanks before the first address and before the command.
This commit is contained in:
@@ -414,6 +414,10 @@ static char *parse_cmd_str(struct sed_cmd * const sed_cmd, const char *const cmd
|
|||||||
* part1 part2 part3
|
* part1 part2 part3
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* skip initial whitespace */
|
||||||
|
while (isspace(cmdstr[idx]))
|
||||||
|
idx++;
|
||||||
|
|
||||||
/* first part (if present) is an address: either a number or a /regex/ */
|
/* first part (if present) is an address: either a number or a /regex/ */
|
||||||
if (isdigit(cmdstr[idx]) || cmdstr[idx] == '/')
|
if (isdigit(cmdstr[idx]) || cmdstr[idx] == '/')
|
||||||
idx = get_address(sed_cmd, cmdstr, &sed_cmd->beg_line, &sed_cmd->beg_match);
|
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] == ',')
|
if (cmdstr[idx] == ',')
|
||||||
idx += get_address(sed_cmd, &cmdstr[++idx], &sed_cmd->end_line, &sed_cmd->end_match);
|
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 */
|
/* last part (mandatory) will be a command */
|
||||||
if (cmdstr[idx] == '\0')
|
if (cmdstr[idx] == '\0')
|
||||||
error_msg_and_die("missing command");
|
error_msg_and_die("missing command");
|
||||||
|
1
testsuite/sed/sed-accepts-blanks-before-command
Normal file
1
testsuite/sed/sed-accepts-blanks-before-command
Normal file
@@ -0,0 +1 @@
|
|||||||
|
busybox sed -e '1 d' </dev/null
|
Reference in New Issue
Block a user