summaryrefslogtreecommitdiffstats
path: root/screen-write.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2012-03-17 17:36:03 +0000
committerNicholas Marriott <nicm@openbsd.org>2012-03-17 17:36:03 +0000
commit0489213b1bf6a3fc7e158951ba993f4b88f48557 (patch)
treea5d6eaeebed60ff889713bf7c48151ba6c7a8b25 /screen-write.c
parentc8c0d681285938a0f8f6aaa34f85ca50c5494f1d (diff)
Revert screen-write.c r1.54 and fix the bug properly. After wrapping a
line in a pane, the cursor needs to move to the next line unless it scrolled.
Diffstat (limited to 'screen-write.c')
-rw-r--r--screen-write.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/screen-write.c b/screen-write.c
index 50abb174..90511e30 100644
--- a/screen-write.c
+++ b/screen-write.c
@@ -1071,8 +1071,11 @@ 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) {
+ if ((s->mode & MODE_INSERT) && s->cx <= screen_size_x(s) - width) {
xx = screen_size_x(s) - s->cx - width;
grid_move_cells(s->grid, s->cx + width, s->cx, s->cy, xx);
insert = 1;
@@ -1084,9 +1087,6 @@ 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)