mirror of
https://github.com/tmux/tmux.git
synced 2024-11-18 02:18:53 +00:00
Sync OpenBSD patchset 426:
Some terminals don't correctly clear their let's-wrap flag after changing the scroll region (which moves the cursor to 0,0). This means that if the cursor was at the edge of the screen, any further output after scroll region change incorrectly causes a line wrap. Add a workaround to move the cursor to position 0 if it is at the screen edge before changing scroll region.
This commit is contained in:
parent
21b23f8e54
commit
8ec8d1f32a
11
tty.c
11
tty.c
@ -1,4 +1,4 @@
|
|||||||
/* $Id: tty.c,v 1.158 2009-10-23 17:16:24 tcunha Exp $ */
|
/* $Id: tty.c,v 1.159 2009-10-23 17:22:39 tcunha Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||||
@ -960,6 +960,15 @@ tty_region(struct tty *tty, u_int rupper, u_int rlower)
|
|||||||
tty->rupper = rupper;
|
tty->rupper = rupper;
|
||||||
tty->rlower = rlower;
|
tty->rlower = rlower;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Some terminals (such as PuTTY) do not correctly reset the cursor to
|
||||||
|
* 0,0 if it is beyond the last column (they do not reset their wrap
|
||||||
|
* flag so further output causes a line feed). As a workaround, do an
|
||||||
|
* explicit move to 0 first.
|
||||||
|
*/
|
||||||
|
if (tty->cx >= tty->sx)
|
||||||
|
tty_cursor(tty, 0, tty->cy);
|
||||||
|
|
||||||
tty->cx = 0;
|
tty->cx = 0;
|
||||||
tty->cy = 0;
|
tty->cy = 0;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user