=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/tty.c,v retrieving revision 1.269 retrieving revision 1.270 diff -u -r1.269 -r1.270 --- src/usr.bin/tmux/tty.c 2017/04/28 17:58:44 1.269 +++ src/usr.bin/tmux/tty.c 2017/05/09 13:04:36 1.270 @@ -1,4 +1,4 @@ -/* $OpenBSD: tty.c,v 1.269 2017/04/28 17:58:44 nicm Exp $ */ +/* $OpenBSD: tty.c,v 1.270 2017/05/09 13:04:36 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -233,7 +233,14 @@ return; log_debug("%s: wrote %d bytes (of %zu)", c->name, nwrite, size); - if (tty_block_maybe(tty)) + if (c->redraw > 0) { + if ((size_t)nwrite >= c->redraw) + c->redraw = 0; + else + c->redraw -= nwrite; + log_debug("%s: waiting for redraw, %zu bytes left", c->name, + c->redraw); + } else if (tty_block_maybe(tty)) return; if (EVBUFFER_LENGTH(tty->out) != 0) @@ -488,7 +495,7 @@ } evbuffer_add(tty->out, buf, len); - log_debug("%s: %.*s", c->name, (int)len, (const char *)buf); + log_debug("%s: %.*s", c->name, (int)len, buf); c->written += len; if (tty_log_fd != -1)