diff options
author | Nicholas Marriott <nicm@cvs.openbsd.org> | 2012-03-14 23:29:08 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@cvs.openbsd.org> | 2012-03-14 23:29:08 +0000 |
commit | ebb1dec01908ff9a6225cf9d718f465511e69b8e (patch) | |
tree | 2c5700478d6690d7acbf1f92a617e7756b34fa22 | |
parent | d9b480e3460521182d2b857f3901018f5f2441cc (diff) |
Store context off before moving the cursor when wrapping, to fix long
standing bug drawing over the status line.
-rw-r--r-- | usr.bin/tmux/screen-write.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/usr.bin/tmux/screen-write.c b/usr.bin/tmux/screen-write.c index 208ebff8e41..a98a303923c 100644 --- a/usr.bin/tmux/screen-write.c +++ b/usr.bin/tmux/screen-write.c @@ -1,4 +1,4 @@ -/* $OpenBSD: screen-write.c,v 1.53 2012/03/03 09:43:22 nicm Exp $ */ +/* $OpenBSD: screen-write.c,v 1.54 2012/03/14 23:29:07 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -1071,9 +1071,6 @@ screen_write_cell(struct screen_write_ctx *ctx, return; } - /* Initialise the redraw context, saving the last cell. */ - screen_write_initctx(ctx, &ttyctx, 1); - /* If in insert mode, make space for the cells. */ if (s->mode & MODE_INSERT && s->cx <= screen_size_x(s) - width) { xx = screen_size_x(s) - s->cx - width; @@ -1087,6 +1084,9 @@ screen_write_cell(struct screen_write_ctx *ctx, s->cx = 0; /* carriage return */ } + /* Initialise the redraw context, saving the last cell. */ + screen_write_initctx(ctx, &ttyctx, 1); + /* Sanity checks. */ if (((s->mode & MODE_WRAP) && s->cx > screen_size_x(s) - width) || s->cy > screen_size_y(s) - 1) |