1
0
mirror of https://github.com/tmux/tmux.git synced 2025-04-14 07:18:49 +00:00

Do not move the cursor to the existing y position if it is invalid, go

home instead.
This commit is contained in:
nicm 2020-04-17 21:33:18 +00:00
parent bbd6e899a8
commit a877a5d8c9

13
tty.c
View File

@ -1739,7 +1739,10 @@ tty_cmd_scrollup(struct tty *tty, const struct tty_ctx *ctx)
for (i = 0; i < ctx->num; i++) for (i = 0; i < ctx->num; i++)
tty_putc(tty, '\n'); tty_putc(tty, '\n');
} else { } else {
tty_cursor(tty, 0, tty->cy); if (tty->cy == UINT_MAX)
tty_cursor(tty, 0, 0);
else
tty_cursor(tty, 0, tty->cy);
tty_putcode1(tty, TTYC_INDN, ctx->num); tty_putcode1(tty, TTYC_INDN, ctx->num);
} }
} }
@ -2063,8 +2066,12 @@ tty_region(struct tty *tty, u_int rupper, u_int rlower)
* flag so further output causes a line feed). As a workaround, do an * flag so further output causes a line feed). As a workaround, do an
* explicit move to 0 first. * explicit move to 0 first.
*/ */
if (tty->cx >= tty->sx) if (tty->cx >= tty->sx) {
tty_cursor(tty, 0, tty->cy); if (tty->cy == UINT_MAX)
tty_cursor(tty, 0, 0);
else
tty_cursor(tty, 0, tty->cy);
}
tty_putcode2(tty, TTYC_CSR, tty->rupper, tty->rlower); tty_putcode2(tty, TTYC_CSR, tty->rupper, tty->rlower);
tty->cx = tty->cy = UINT_MAX; tty->cx = tty->cy = UINT_MAX;