=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/Attic/buffer-poll.c,v retrieving revision 1.2 retrieving revision 1.3 diff -c -r1.2 -r1.3 *** src/usr.bin/tmux/Attic/buffer-poll.c 2009/06/25 06:05:47 1.2 --- src/usr.bin/tmux/Attic/buffer-poll.c 2009/10/10 15:03:01 1.3 *************** *** 1,4 **** ! /* $OpenBSD: buffer-poll.c,v 1.2 2009/06/25 06:05:47 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: buffer-poll.c,v 1.3 2009/10/10 15:03:01 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott *************** *** 29,37 **** { ssize_t n; ! if (pfd->revents & (POLLERR|POLLNVAL|POLLHUP)) return (-1); ! if (pfd->revents & POLLIN) { buffer_ensure(in, BUFSIZ); n = read(pfd->fd, BUFFER_IN(in), BUFFER_FREE(in)); if (n == 0) --- 29,37 ---- { ssize_t n; ! if (pfd->revents & (POLLERR|POLLNVAL)) return (-1); ! if (in != NULL && pfd->revents & POLLIN) { buffer_ensure(in, BUFSIZ); n = read(pfd->fd, BUFFER_IN(in), BUFFER_FREE(in)); if (n == 0) *************** *** 41,48 **** return (-1); } else buffer_add(in, n); ! } ! if (BUFFER_USED(out) > 0 && pfd->revents & POLLOUT) { n = write(pfd->fd, BUFFER_OUT(out), BUFFER_USED(out)); if (n == -1) { if (errno != EINTR && errno != EAGAIN) --- 41,49 ---- return (-1); } else buffer_add(in, n); ! } else if (pfd->revents & POLLHUP) ! return (-1); ! if (out != NULL && BUFFER_USED(out) > 0 && pfd->revents & POLLOUT) { n = write(pfd->fd, BUFFER_OUT(out), BUFFER_USED(out)); if (n == -1) { if (errno != EINTR && errno != EAGAIN)