mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 09:17:31 +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:
		
							
								
								
									
										7
									
								
								tty.c
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								tty.c
									
									
									
									
									
								
							@@ -945,14 +945,16 @@ tty_cursor(struct tty *tty, u_int cx, u_int cy)
 | 
			
		||||
		cx = tty->sx - 1;
 | 
			
		||||
 | 
			
		||||
	thisx = tty->cx;
 | 
			
		||||
	if (thisx > tty->sx - 1)
 | 
			
		||||
		thisx = tty->sx - 1;
 | 
			
		||||
	thisy = tty->cy;
 | 
			
		||||
 | 
			
		||||
	/* No change. */
 | 
			
		||||
	if (cx == thisx && cy == thisy)
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
	/* Very end of the line, just use absolute movement. */
 | 
			
		||||
	if (thisx > tty->sx - 1)
 | 
			
		||||
		goto absolute;
 | 
			
		||||
 | 
			
		||||
	/* Move to home position (0, 0). */
 | 
			
		||||
	if (cx == 0 && cy == 0 && tty_term_has(term, 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. */
 | 
			
		||||
	tty_putcode2(tty, TTYC_CUP, cy, cx);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user