summaryrefslogtreecommitdiffstats
path: root/screen-write.c
diff options
context:
space:
mode:
authornicm <nicm>2019-03-12 18:30:08 +0000
committernicm <nicm>2019-03-12 18:30:08 +0000
commit2796ae81d0be04df161cffdf447c2d0e5ec895e2 (patch)
tree8290bc3f82b974e0bf2c8c9948388b1763826383 /screen-write.c
parentf3f534a3a0361ed11d0fc455f9a42ba82e6aa471 (diff)
Fix HPA in origin mode.
Diffstat (limited to 'screen-write.c')
-rw-r--r--screen-write.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/screen-write.c b/screen-write.c
index a6e78f42..c9cba2bd 100644
--- a/screen-write.c
+++ b/screen-write.c
@@ -1034,20 +1034,20 @@ screen_write_clearstartofline(struct screen_write_ctx *ctx, u_int bg)
/* Move cursor to px,py. */
void
-screen_write_cursormove(struct screen_write_ctx *ctx, u_int px, u_int py)
+screen_write_cursormove(struct screen_write_ctx *ctx, int px, int py)
{
struct screen *s = ctx->s;
- if (s->mode & MODE_ORIGIN) {
- if (py > s->rlower - s->rupper)
+ if (py != -1 && (s->mode & MODE_ORIGIN)) {
+ if ((u_int)py > s->rlower - s->rupper)
py = s->rlower;
else
py += s->rupper;
}
- if (px > screen_size_x(s) - 1)
+ if (px != -1 && (u_int)px > screen_size_x(s) - 1)
px = screen_size_x(s) - 1;
- if (py > screen_size_y(s) - 1)
+ if (py != -1 && (u_int)py > screen_size_y(s) - 1)
py = screen_size_y(s) - 1;
screen_write_set_cursor(ctx, px, py);