summaryrefslogtreecommitdiff
path: root/usr.bin/sed
diff options
context:
space:
mode:
authorJuli Mallett <jmallett@FreeBSD.org>2002-04-07 02:29:56 +0000
committerJuli Mallett <jmallett@FreeBSD.org>2002-04-07 02:29:56 +0000
commitae17860040ea0538291e276edd13c51502091d55 (patch)
tree99efc7fb359e424bf60d108e3ee4b5d486296e9b /usr.bin/sed
parent856bef3c1713667a5ac7ba1dfc5452a516820080 (diff)
downloadsrc-test2-ae17860040ea0538291e276edd13c51502091d55.tar.gz
src-test2-ae17860040ea0538291e276edd13c51502091d55.zip
Notes
Diffstat (limited to 'usr.bin/sed')
-rw-r--r--usr.bin/sed/process.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/usr.bin/sed/process.c b/usr.bin/sed/process.c
index ff3cb1913889..a1e3ca72756c 100644
--- a/usr.bin/sed/process.c
+++ b/usr.bin/sed/process.c
@@ -136,7 +136,8 @@ redirect:
case 'D':
if (pd)
goto new;
- if ((p = memchr(ps, '\n', psl - 1)) == NULL) {
+ if (psl == 0 ||
+ (p = memchr(ps, '\n', psl - 1)) == NULL) {
pd = 1;
goto new;
} else {
@@ -188,7 +189,8 @@ redirect:
case 'P':
if (pd)
break;
- if ((p = memchr(ps, '\n', psl - 1)) != NULL) {
+ if (psl != 0 &&
+ (p = memchr(ps, '\n', psl - 1)) != NULL) {
oldpsl = psl;
psl = (p + 1) - ps;
}
@@ -240,7 +242,7 @@ redirect:
HS = tspace;
break;
case 'y':
- if (pd)
+ if (pd || psl == 0)
break;
for (p = ps, len = psl; --len; ++p)
*p = cp->u.y[(unsigned char)*p];