diff options
Diffstat (limited to 'editors/sed.c')
-rw-r--r-- | editors/sed.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/editors/sed.c b/editors/sed.c index c0d79cc..b7add1f 100644 --- a/editors/sed.c +++ b/editors/sed.c @@ -1300,16 +1300,17 @@ static void process_files(void) case 'n': if (!G.be_quiet) sed_puts(pattern_space, last_gets_char); - if (next_line) { - free(pattern_space); - pattern_space = next_line; - last_gets_char = next_gets_char; - next_line = get_next_line(&next_gets_char, &last_puts_char); - substituted = 0; - linenum++; - break; + if (next_line == NULL) { + /* If no next line, jump to end of script and exit. */ + goto discard_line; } - /* fall through */ + free(pattern_space); + pattern_space = next_line; + last_gets_char = next_gets_char; + next_line = get_next_line(&next_gets_char, &last_puts_char); + substituted = 0; + linenum++; + break; /* Quit. End of script, end of input. */ case 'q': |