1
0
mirror of https://github.com/tmux/tmux.git synced 2025-04-27 15:48:54 +00:00

Use absolute movement if right at the end of the line as it isn't a reliable

place to move from relatively.
This commit is contained in:
Nicholas Marriott 2009-10-12 14:54:19 +00:00
parent 687c4a9fab
commit 0aab5811ca

7
tty.c
View File

@ -945,14 +945,16 @@ tty_cursor(struct tty *tty, u_int cx, u_int cy)
cx = tty->sx - 1; cx = tty->sx - 1;
thisx = tty->cx; thisx = tty->cx;
if (thisx > tty->sx - 1)
thisx = tty->sx - 1;
thisy = tty->cy; thisy = tty->cy;
/* No change. */ /* No change. */
if (cx == thisx && cy == thisy) if (cx == thisx && cy == thisy)
return; return;
/* Very end of the line, just use absolute movement. */
if (thisx > tty->sx - 1)
goto absolute;
/* Move to home position (0, 0). */ /* Move to home position (0, 0). */
if (cx == 0 && cy == 0 && tty_term_has(term, TTYC_HOME)) { if (cx == 0 && cy == 0 && tty_term_has(term, TTYC_HOME)) {
tty_putcode(tty, TTYC_HOME); tty_putcode(tty, TTYC_HOME);
@ -1043,6 +1045,7 @@ tty_cursor(struct tty *tty, u_int cx, u_int cy)
} }
} }
absolute:
/* Absolute movement. */ /* Absolute movement. */
tty_putcode2(tty, TTYC_CUP, cy, cx); tty_putcode2(tty, TTYC_CUP, cy, cx);