diff options
-rw-r--r-- | editors/sed.c | 8 | ||||
-rw-r--r-- | testsuite/sed/sed-next-line | 12 |
2 files changed, 20 insertions, 0 deletions
diff --git a/editors/sed.c b/editors/sed.c index 00ed208..8c77a0f 100644 --- a/editors/sed.c +++ b/editors/sed.c @@ -985,11 +985,19 @@ static void process_file(FILE * file) next_line = NULL; break; case 'n': /* Read next line from input */ + if (!be_quiet) { + puts(pattern_space); + } if (next_line) { free(pattern_space); pattern_space = next_line; next_line = bb_get_chomped_line_from_file(file); linenum++; + } else { + /* Jump to end of script and exist */ + deleted = 1; + free(next_line); + next_line = NULL; } break; case 'N': /* Append the next line to the current line */ diff --git a/testsuite/sed/sed-next-line b/testsuite/sed/sed-next-line new file mode 100644 index 0000000..38fe20c --- /dev/null +++ b/testsuite/sed/sed-next-line @@ -0,0 +1,12 @@ +busybox sed 'n;p'>output <<EOF +a +b +c +EOF +cmp -s output - <<EOF +a +b +b +c +c +EOF |