=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/screen-write.c,v retrieving revision 1.111 retrieving revision 1.112 diff -c -r1.111 -r1.112 *** src/usr.bin/tmux/screen-write.c 2017/02/09 09:33:15 1.111 --- src/usr.bin/tmux/screen-write.c 2017/02/09 10:09:14 1.112 *************** *** 1,4 **** ! /* $OpenBSD: screen-write.c,v 1.111 2017/02/09 09:33:15 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: screen-write.c,v 1.112 2017/02/09 10:09:14 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott *************** *** 1153,1163 **** return; ctx->cells++; - /* Flush any existing scrolling. */ - screen_write_collect_flush(ctx, 1); - /* If the width is zero, combine onto the previous character. */ if (width == 0) { if ((gc = screen_write_combine(ctx, &gc->data, &xx)) != 0) { screen_write_cursormove(ctx, xx, s->cy); screen_write_initctx(ctx, &ttyctx); --- 1153,1161 ---- return; ctx->cells++; /* If the width is zero, combine onto the previous character. */ if (width == 0) { + screen_write_collect_flush(ctx, 0); if ((gc = screen_write_combine(ctx, &gc->data, &xx)) != 0) { screen_write_cursormove(ctx, xx, s->cy); screen_write_initctx(ctx, &ttyctx); *************** *** 1166,1171 **** --- 1164,1172 ---- } return; } + + /* Flush any existing scrolling. */ + screen_write_collect_flush(ctx, 1); /* If this character doesn't fit, ignore it. */ if ((~s->mode & MODE_WRAP) &&