mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-03 16:46:18 +00:00 
			
		
		
		
	Sync OpenBSD patchset 1062:
Break out termios initialization into a separate function, from George Nachman.
This commit is contained in:
		
							
								
								
									
										1
									
								
								tmux.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								tmux.h
									
									
									
									
									
								
							@@ -1440,6 +1440,7 @@ void	environ_update(const char *, struct environ *, struct environ *);
 | 
				
			|||||||
void	environ_push(struct environ *);
 | 
					void	environ_push(struct environ *);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* tty.c */
 | 
					/* tty.c */
 | 
				
			||||||
 | 
					void	tty_init_termios(int, struct termios *, struct bufferevent *);
 | 
				
			||||||
void	tty_raw(struct tty *, const char *);
 | 
					void	tty_raw(struct tty *, const char *);
 | 
				
			||||||
void	tty_attributes(struct tty *, const struct grid_cell *);
 | 
					void	tty_attributes(struct tty *, const struct grid_cell *);
 | 
				
			||||||
void	tty_reset(struct tty *);
 | 
					void	tty_reset(struct tty *);
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										21
									
								
								tty.c
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								tty.c
									
									
									
									
									
								
							@@ -175,18 +175,19 @@ tty_error_callback(
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
tty_start_tty(struct tty *tty)
 | 
					tty_init_termios(int fd, struct termios *orig_tio, struct bufferevent *bufev)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct termios	 tio;
 | 
						struct termios	 tio;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (tty->fd == -1 || tcgetattr(tty->fd, &tty->tio) != 0)
 | 
						if (fd == -1 || tcgetattr(fd, orig_tio) != 0)
 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	setblocking(tty->fd, 0);
 | 
						setblocking(fd, 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	bufferevent_enable(tty->event, EV_READ|EV_WRITE);
 | 
						if (bufev != NULL)
 | 
				
			||||||
 | 
							bufferevent_enable(bufev, EV_READ|EV_WRITE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	memcpy(&tio, &tty->tio, sizeof tio);
 | 
						memcpy(&tio, orig_tio, sizeof tio);
 | 
				
			||||||
	tio.c_iflag &= ~(IXON|IXOFF|ICRNL|INLCR|IGNCR|IMAXBEL|ISTRIP);
 | 
						tio.c_iflag &= ~(IXON|IXOFF|ICRNL|INLCR|IGNCR|IMAXBEL|ISTRIP);
 | 
				
			||||||
	tio.c_iflag |= IGNBRK;
 | 
						tio.c_iflag |= IGNBRK;
 | 
				
			||||||
	tio.c_oflag &= ~(OPOST|ONLCR|OCRNL|ONLRET);
 | 
						tio.c_oflag &= ~(OPOST|ONLCR|OCRNL|ONLRET);
 | 
				
			||||||
@@ -194,8 +195,14 @@ tty_start_tty(struct tty *tty)
 | 
				
			|||||||
	    ECHOPRT|ECHOKE|ECHOCTL|ISIG);
 | 
						    ECHOPRT|ECHOKE|ECHOCTL|ISIG);
 | 
				
			||||||
	tio.c_cc[VMIN] = 1;
 | 
						tio.c_cc[VMIN] = 1;
 | 
				
			||||||
	tio.c_cc[VTIME] = 0;
 | 
						tio.c_cc[VTIME] = 0;
 | 
				
			||||||
	if (tcsetattr(tty->fd, TCSANOW, &tio) == 0)
 | 
						if (tcsetattr(fd, TCSANOW, &tio) == 0)
 | 
				
			||||||
		tcflush(tty->fd, TCIOFLUSH);
 | 
							tcflush(fd, TCIOFLUSH);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					tty_start_tty(struct tty *tty)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						tty_init_termios(tty->fd, &tty->tio, tty->event);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	tty_putcode(tty, TTYC_SMCUP);
 | 
						tty_putcode(tty, TTYC_SMCUP);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user