From 9e94669b318caf0f97ff31f3c8fe7deb5dfd3c1b Mon Sep 17 00:00:00 2001 From: tjr Date: Sun, 11 Aug 2002 09:53:44 +0000 Subject: Correct boundary condition error in `D' and `P' commands when the last line of the pattern space is empty. Don't emit spurious newline when EOF is reached with the `N' command. Pointed out by: Oleg Osyka MFC after: 1 week --- usr.bin/sed/process.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'usr.bin/sed') diff --git a/usr.bin/sed/process.c b/usr.bin/sed/process.c index e7abf71..94c24e9 100644 --- a/usr.bin/sed/process.c +++ b/usr.bin/sed/process.c @@ -137,7 +137,7 @@ redirect: if (pd) goto new; if (psl == 0 || - (p = memchr(ps, '\n', psl - 1)) == NULL) { + (p = memchr(ps, '\n', psl)) == NULL) { pd = 1; goto new; } else { @@ -176,11 +176,8 @@ redirect: case 'N': flush_appends(); cspace(&PS, "\n", 1, 0); - if (!mf_fgets(&PS, 0)) { - if (!nflag && !pd) - OUT(ps) + if (!mf_fgets(&PS, 0)) exit(0); - } break; case 'p': if (pd) @@ -191,7 +188,7 @@ redirect: if (pd) break; if (psl != 0 && - (p = memchr(ps, '\n', psl - 1)) != NULL) { + (p = memchr(ps, '\n', psl)) != NULL) { oldpsl = psl; psl = p - ps; } -- cgit v1.1