mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 09:26:05 +00:00 
			
		
		
		
	Drop the no_stop argument to tty_close and tty_free in favour of a flag in the
tty struct.
This commit is contained in:
		@@ -90,7 +90,7 @@ server_msg_dispatch(struct client *c)
 | 
				
			|||||||
				fatalx("bad MSG_EXITING size");
 | 
									fatalx("bad MSG_EXITING size");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			c->session = NULL;
 | 
								c->session = NULL;
 | 
				
			||||||
			tty_close(&c->tty, c->flags & CLIENT_SUSPENDED);
 | 
								tty_close(&c->tty);
 | 
				
			||||||
			server_write_client(c, MSG_EXITED, NULL, 0);
 | 
								server_write_client(c, MSG_EXITED, NULL, 0);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case MSG_UNLOCK:
 | 
							case MSG_UNLOCK:
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								server.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								server.c
									
									
									
									
									
								
							@@ -902,7 +902,7 @@ server_lost_client(struct client *c)
 | 
				
			|||||||
			ARRAY_SET(&clients, i, NULL);
 | 
								ARRAY_SET(&clients, i, NULL);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	tty_free(&c->tty, c->flags & CLIENT_SUSPENDED);
 | 
						tty_free(&c->tty);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	screen_free(&c->status);
 | 
						screen_free(&c->status);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										5
									
								
								tmux.h
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								tmux.h
									
									
									
									
									
								
							@@ -868,6 +868,7 @@ struct tty {
 | 
				
			|||||||
#define TTY_FREEZE 0x2
 | 
					#define TTY_FREEZE 0x2
 | 
				
			||||||
#define TTY_ESCAPE 0x4
 | 
					#define TTY_ESCAPE 0x4
 | 
				
			||||||
#define TTY_UTF8 0x8
 | 
					#define TTY_UTF8 0x8
 | 
				
			||||||
 | 
					#define TTY_STARTED 0x10
 | 
				
			||||||
	int    		 flags;
 | 
						int    		 flags;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	int		 term_flags;
 | 
						int		 term_flags;
 | 
				
			||||||
@@ -1164,8 +1165,8 @@ void	tty_set_title(struct tty *, const char *);
 | 
				
			|||||||
void	tty_update_mode(struct tty *, int);
 | 
					void	tty_update_mode(struct tty *, int);
 | 
				
			||||||
void	tty_draw_line(struct tty *, struct screen *, u_int, u_int, u_int);
 | 
					void	tty_draw_line(struct tty *, struct screen *, u_int, u_int, u_int);
 | 
				
			||||||
int	tty_open(struct tty *, const char *, char **);
 | 
					int	tty_open(struct tty *, const char *, char **);
 | 
				
			||||||
void	tty_close(struct tty *, int);
 | 
					void	tty_close(struct tty *);
 | 
				
			||||||
void	tty_free(struct tty *, int);
 | 
					void	tty_free(struct tty *);
 | 
				
			||||||
void	tty_write(void (*)(struct tty *, struct tty_ctx *), struct tty_ctx *);
 | 
					void	tty_write(void (*)(struct tty *, struct tty_ctx *), struct tty_ctx *);
 | 
				
			||||||
void	tty_cmd_alignmenttest(struct tty *, struct tty_ctx *);
 | 
					void	tty_cmd_alignmenttest(struct tty *, struct tty_ctx *);
 | 
				
			||||||
void	tty_cmd_cell(struct tty *, struct tty_ctx *);
 | 
					void	tty_cmd_cell(struct tty *, struct tty_ctx *);
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										15
									
								
								tty.c
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								tty.c
									
									
									
									
									
								
							@@ -149,6 +149,8 @@ tty_start_tty(struct tty *tty)
 | 
				
			|||||||
	tty->rupper = UINT_MAX;
 | 
						tty->rupper = UINT_MAX;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	tty->mode = MODE_CURSOR;
 | 
						tty->mode = MODE_CURSOR;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						tty->flags |= TTY_STARTED;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
@@ -156,6 +158,10 @@ tty_stop_tty(struct tty *tty)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	struct winsize	ws;
 | 
						struct winsize	ws;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (!(tty->flags & TTY_STARTED))
 | 
				
			||||||
 | 
							return;
 | 
				
			||||||
 | 
						tty->flags &= ~TTY_STARTED;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/*
 | 
						/*
 | 
				
			||||||
	 * Be flexible about error handling and try not kill the server just
 | 
						 * Be flexible about error handling and try not kill the server just
 | 
				
			||||||
	 * because the fd is invalid. Things like ssh -t can easily leave us
 | 
						 * because the fd is invalid. Things like ssh -t can easily leave us
 | 
				
			||||||
@@ -281,7 +287,7 @@ tty_get_acs(struct tty *tty, u_char ch)
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
tty_close(struct tty *tty, int no_stop)
 | 
					tty_close(struct tty *tty)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if (tty->fd == -1)
 | 
						if (tty->fd == -1)
 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
@@ -291,8 +297,7 @@ tty_close(struct tty *tty, int no_stop)
 | 
				
			|||||||
		tty->log_fd = -1;
 | 
							tty->log_fd = -1;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!no_stop)
 | 
						tty_stop_tty(tty);
 | 
				
			||||||
		tty_stop_tty(tty);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	tty_term_free(tty->term);
 | 
						tty_term_free(tty->term);
 | 
				
			||||||
	tty_keys_free(tty);
 | 
						tty_keys_free(tty);
 | 
				
			||||||
@@ -305,9 +310,9 @@ tty_close(struct tty *tty, int no_stop)
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
tty_free(struct tty *tty, int no_stop)
 | 
					tty_free(struct tty *tty)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	tty_close(tty, no_stop);
 | 
						tty_close(tty);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (tty->path != NULL)
 | 
						if (tty->path != NULL)
 | 
				
			||||||
		xfree(tty->path);
 | 
							xfree(tty->path);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user