diff --git a/screen-write.c b/screen-write.c index e8aa0973..a6e78f42 100644 --- a/screen-write.c +++ b/screen-write.c @@ -75,7 +75,7 @@ screen_write_set_cursor(struct screen_write_ctx *ctx, int cx, int cy) return; if (cx != -1) { - if ((u_int)cx > screen_size_x(s) - 1) + if ((u_int)cx > screen_size_x(s)) /* allow last column */ cx = screen_size_x(s) - 1; s->cx = cx; } @@ -1045,6 +1045,11 @@ screen_write_cursormove(struct screen_write_ctx *ctx, u_int px, u_int py) py += s->rupper; } + if (px > screen_size_x(s) - 1) + px = screen_size_x(s) - 1; + if (py > screen_size_y(s) - 1) + py = screen_size_y(s) - 1; + screen_write_set_cursor(ctx, px, py); }