aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Kraai <kraai@debian.org>2001-12-21 16:04:12 +0000
committerMatt Kraai <kraai@debian.org>2001-12-21 16:04:12 +0000
commit70624846fdfb95ed3913d86cd5e72116791b9070 (patch)
tree19c76665ded18142165cf21d9cf168679ac86581
parent1fcc66e68550ca470074bf4e204efd9d418d8f9a (diff)
downloadbusybox-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.c8
-rw-r--r--testsuite/sed/sed-accepts-blanks-before-command1
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