diff --git a/CHANGES b/CHANGES index 19f6c010..d5d0fee3 100644 --- a/CHANGES +++ b/CHANGES @@ -186,5 +186,4 @@ (including mutt, emacs). No status bar yet and no key remapping or other customisation. -$Id: CHANGES,v 1.57 2007-10-31 14:26:26 nicm Exp $ - +$Id: CHANGES,v 1.58 2007-11-07 19:41:17 nicm Exp $ diff --git a/TODO b/TODO index 628072eb..24193c27 100644 --- a/TODO +++ b/TODO @@ -55,6 +55,7 @@ rename sessions kill session (not bound by default) - fix most(1) problems after scrolling +- fix mutt problems with redraw (mutt's) status line when reading mail - check for some reqd terminfo caps on startup -- For 0.2 -------------------------------------------------------------------- diff --git a/buffer-poll.c b/buffer-poll.c index e3c64832..06cbf81f 100644 --- a/buffer-poll.c +++ b/buffer-poll.c @@ -1,4 +1,4 @@ -/* $Id: buffer-poll.c,v 1.1.1.1 2007-07-09 19:04:12 nicm Exp $ */ +/* $Id: buffer-poll.c,v 1.2 2007-11-07 19:41:17 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -40,18 +40,16 @@ buffer_poll(struct pollfd *pfd, struct buffer *in, struct buffer *out) if (n == -1) { if (errno != EINTR && errno != EAGAIN) return (-1); - return (0); - } - buffer_add(in, n); + } 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) return (-1); - return (0); - } - buffer_remove(out, n); + } else + buffer_remove(out, n); } return (0); } diff --git a/window.c b/window.c index 9a737547..0c029b4c 100644 --- a/window.c +++ b/window.c @@ -1,4 +1,4 @@ -/* $Id: window.c,v 1.25 2007-10-31 14:26:26 nicm Exp $ */ +/* $Id: window.c,v 1.26 2007-11-07 19:41:17 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -45,17 +45,17 @@ * * A window has two buffers attached, these are filled and emptied by the main * server poll loop. Output data is received from pty's in screen format, - * translated and returned as a series of escape sequences and strings. - * Input data is received in screen format and written directly to the pty - * (translation is done in the client). + * translated and returned as a series of escape sequences and strings via + * input_parse (in input.c). Input data is received as key codes and written + * directly via input_translate_key. * * Each window also has a "virtual" screen (screen.c) which contains the * current state and is redisplayed when the window is reattached to a client. * * Windows are stored directly on a global array and wrapped in any number of - * winlink structs to be linked onto local session RB trees A reference count + * winlink structs to be linked onto local session RB trees. A reference count * is maintained and a window removed from the global list and destroyed when - * it reaches zero + * it reaches zero. */ /* Global window list. */