mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 09:26:05 +00:00 
			
		
		
		
	Merge branch 'obsd-master'
This commit is contained in:
		
							
								
								
									
										1
									
								
								tmux.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								tmux.h
									
									
									
									
									
								
							@@ -1181,6 +1181,7 @@ LIST_HEAD(tty_terms, tty_term);
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
struct tty {
 | 
					struct tty {
 | 
				
			||||||
	struct client	*client;
 | 
						struct client	*client;
 | 
				
			||||||
 | 
						struct event	 start_timer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	u_int		 sx;
 | 
						u_int		 sx;
 | 
				
			||||||
	u_int		 sy;
 | 
						u_int		 sy;
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										17
									
								
								tty.c
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								tty.c
									
									
									
									
									
								
							@@ -285,11 +285,22 @@ tty_open(struct tty *tty, char **cause)
 | 
				
			|||||||
	return (0);
 | 
						return (0);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void
 | 
				
			||||||
 | 
					tty_start_timer_callback(__unused int fd, __unused short events, void *data)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						struct tty	*tty = data;
 | 
				
			||||||
 | 
						struct client	*c = tty->client;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						log_debug("%s: start timer fired", c->name);
 | 
				
			||||||
 | 
						tty->flags |= (TTY_HAVEDA|TTY_HAVEDSR);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
tty_start_tty(struct tty *tty)
 | 
					tty_start_tty(struct tty *tty)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct client	*c = tty->client;
 | 
						struct client	*c = tty->client;
 | 
				
			||||||
	struct termios	 tio;
 | 
						struct termios	 tio;
 | 
				
			||||||
 | 
						struct timeval	 tv = { .tv_sec = 1 };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (tty->fd != -1 && tcgetattr(tty->fd, &tty->tio) == 0) {
 | 
						if (tty->fd != -1 && tcgetattr(tty->fd, &tty->tio) == 0) {
 | 
				
			||||||
		setblocking(tty->fd, 0);
 | 
							setblocking(tty->fd, 0);
 | 
				
			||||||
@@ -328,9 +339,13 @@ tty_start_tty(struct tty *tty)
 | 
				
			|||||||
			tty_puts(tty, "\033[?1004h");
 | 
								tty_puts(tty, "\033[?1004h");
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		tty_puts(tty, "\033[c\033[1337n"); /* DA and DSR */
 | 
							tty_puts(tty, "\033[c\033[1337n"); /* DA and DSR */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	} else
 | 
						} else
 | 
				
			||||||
		tty->flags |= (TTY_HAVEDA|TTY_HAVEDSR);
 | 
							tty->flags |= (TTY_HAVEDA|TTY_HAVEDSR);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						evtimer_set(&tty->start_timer, tty_start_timer_callback, tty);
 | 
				
			||||||
 | 
						evtimer_add(&tty->start_timer, &tv);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	tty->flags |= TTY_STARTED;
 | 
						tty->flags |= TTY_STARTED;
 | 
				
			||||||
	tty_invalidate(tty);
 | 
						tty_invalidate(tty);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -351,6 +366,8 @@ tty_stop_tty(struct tty *tty)
 | 
				
			|||||||
		return;
 | 
							return;
 | 
				
			||||||
	tty->flags &= ~TTY_STARTED;
 | 
						tty->flags &= ~TTY_STARTED;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						evtimer_del(&tty->start_timer);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	event_del(&tty->timer);
 | 
						event_del(&tty->timer);
 | 
				
			||||||
	tty->flags &= ~TTY_BLOCK;
 | 
						tty->flags &= ~TTY_BLOCK;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user