=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/script/script.c,v retrieving revision 1.23 retrieving revision 1.24 diff -c -r1.23 -r1.24 *** src/usr.bin/script/script.c 2005/04/11 19:59:07 1.23 --- src/usr.bin/script/script.c 2005/12/12 20:10:53 1.24 *************** *** 1,4 **** ! /* $OpenBSD: script.c,v 1.23 2005/04/11 19:59:07 deraadt Exp $ */ /* $NetBSD: script.c,v 1.3 1994/12/21 08:55:43 jtc Exp $ */ /* --- 1,4 ---- ! /* $OpenBSD: script.c,v 1.24 2005/12/12 20:10:53 deraadt Exp $ */ /* $NetBSD: script.c,v 1.3 1994/12/21 08:55:43 jtc Exp $ */ /* *************** *** 65,71 **** #if 0 static const char sccsid[] = "@(#)script.c 8.1 (Berkeley) 6/6/93"; #endif ! static const char rcsid[] = "$OpenBSD: script.c,v 1.23 2005/04/11 19:59:07 deraadt Exp $"; #endif /* not lint */ #include --- 65,71 ---- #if 0 static const char sccsid[] = "@(#)script.c 8.1 (Berkeley) 6/6/93"; #endif ! static const char rcsid[] = "$OpenBSD: script.c,v 1.24 2005/12/12 20:10:53 deraadt Exp $"; #endif /* not lint */ #include *************** *** 188,193 **** --- 188,195 ---- break; for (off = 0; off < cc; ) { ssize_t n = write(master, ibuf + off, cc - off); + if (n == -1 && errno != EAGAIN) + break; if (n == 0) break; /* skip writing */ if (n > 0) *************** *** 273,278 **** --- 275,282 ---- sigprocmask(SIG_BLOCK, &blkalrm, NULL); for (off = 0; off < cc; ) { ssize_t n = write(STDOUT_FILENO, obuf + off, cc - off); + if (n == -1 && errno != EAGAIN) + break; if (n == 0) break; /* skip writing */ if (n > 0)