=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/sed/process.c,v retrieving revision 1.7 retrieving revision 1.8 diff -c -r1.7 -r1.8 *** src/usr.bin/sed/process.c 2002/02/16 21:27:52 1.7 --- src/usr.bin/sed/process.c 2002/04/15 21:47:45 1.8 *************** *** 1,4 **** ! /* $OpenBSD: process.c,v 1.7 2002/02/16 21:27:52 millert Exp $ */ /*- * Copyright (c) 1992 Diomidis Spinellis. --- 1,4 ---- ! /* $OpenBSD: process.c,v 1.8 2002/04/15 21:47:45 millert Exp $ */ /*- * Copyright (c) 1992 Diomidis Spinellis. *************** *** 39,45 **** #ifndef lint /* from: static char sccsid[] = "@(#)process.c 8.1 (Berkeley) 6/6/93"; */ ! static char *rcsid = "$OpenBSD: process.c,v 1.7 2002/02/16 21:27:52 millert Exp $"; #endif /* not lint */ #include --- 39,45 ---- #ifndef lint /* from: static char sccsid[] = "@(#)process.c 8.1 (Berkeley) 6/6/93"; */ ! static char *rcsid = "$OpenBSD: process.c,v 1.8 2002/04/15 21:47:45 millert Exp $"; #endif /* not lint */ #include *************** *** 134,140 **** case 'D': if (pd) goto new; ! if ((p = memchr(ps, '\n', psl - 1)) == NULL) { pd = 1; goto new; } else { --- 134,141 ---- case 'D': if (pd) goto new; ! if (psl == 0 || ! (p = memchr(ps, '\n', psl - 1)) == NULL) { pd = 1; goto new; } else { *************** *** 186,192 **** case 'P': if (pd) break; ! if ((p = memchr(ps, '\n', psl - 1)) != NULL) { oldpsl = psl; psl = (p + 1) - ps; } --- 187,194 ---- case 'P': if (pd) break; ! if (psl != 0 && ! (p = memchr(ps, '\n', psl - 1)) != NULL) { oldpsl = psl; psl = (p + 1) - ps; } *************** *** 239,245 **** HS = tspace; break; case 'y': ! if (pd) break; for (p = ps, len = psl; --len; ++p) *p = cp->u.y[(unsigned char)*p]; --- 241,247 ---- HS = tspace; break; case 'y': ! if (pd || psl == 0) break; for (p = ps, len = psl; --len; ++p) *p = cp->u.y[(unsigned char)*p];