diff options
author | Matt Kraai <kraai@debian.org> | 2001-12-21 16:04:12 +0000 |
---|---|---|
committer | Matt Kraai <kraai@debian.org> | 2001-12-21 16:04:12 +0000 |
commit | 70624846fdfb95ed3913d86cd5e72116791b9070 (patch) | |
tree | 19c76665ded18142165cf21d9cf168679ac86581 | |
parent | 1fcc66e68550ca470074bf4e204efd9d418d8f9a (diff) | |
download | busybox-w32-70624846fdfb95ed3913d86cd5e72116791b9070.tar.gz busybox-w32-70624846fdfb95ed3913d86cd5e72116791b9070.tar.bz2 busybox-w32-70624846fdfb95ed3913d86cd5e72116791b9070.zip |
Ignore blanks before the first address and before the command.
-rw-r--r-- | editors/sed.c | 8 | ||||
-rw-r--r-- | testsuite/sed/sed-accepts-blanks-before-command | 1 |
2 files changed, 9 insertions, 0 deletions
diff --git a/editors/sed.c b/editors/sed.c index 7f765842c..fe1c0dbae 100644 --- a/editors/sed.c +++ b/editors/sed.c | |||
@@ -414,6 +414,10 @@ static char *parse_cmd_str(struct sed_cmd * const sed_cmd, const char *const cmd | |||
414 | * part1 part2 part3 | 414 | * part1 part2 part3 |
415 | */ | 415 | */ |
416 | 416 | ||
417 | /* skip initial whitespace */ | ||
418 | while (isspace(cmdstr[idx])) | ||
419 | idx++; | ||
420 | |||
417 | /* first part (if present) is an address: either a number or a /regex/ */ | 421 | /* first part (if present) is an address: either a number or a /regex/ */ |
418 | if (isdigit(cmdstr[idx]) || cmdstr[idx] == '/') | 422 | if (isdigit(cmdstr[idx]) || cmdstr[idx] == '/') |
419 | idx = get_address(sed_cmd, cmdstr, &sed_cmd->beg_line, &sed_cmd->beg_match); | 423 | 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 | |||
422 | if (cmdstr[idx] == ',') | 426 | if (cmdstr[idx] == ',') |
423 | idx += get_address(sed_cmd, &cmdstr[++idx], &sed_cmd->end_line, &sed_cmd->end_match); | 427 | idx += get_address(sed_cmd, &cmdstr[++idx], &sed_cmd->end_line, &sed_cmd->end_match); |
424 | 428 | ||
429 | /* skip whitespace before the command */ | ||
430 | while (isspace(cmdstr[idx])) | ||
431 | idx++; | ||
432 | |||
425 | /* last part (mandatory) will be a command */ | 433 | /* last part (mandatory) will be a command */ |
426 | if (cmdstr[idx] == '\0') | 434 | if (cmdstr[idx] == '\0') |
427 | error_msg_and_die("missing command"); | 435 | 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 index 000000000..9597c2f8b --- /dev/null +++ b/testsuite/sed/sed-accepts-blanks-before-command | |||
@@ -0,0 +1 @@ | |||
busybox sed -e '1 d' </dev/null | |||