mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 09:26:05 +00:00 
			
		
		
		
	Add a wait-for command which blocks a client on a named channel until it
is woken up again (with wait-for -S). From Thiago Padilha.
This commit is contained in:
		
							
								
								
									
										1
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								Makefile
									
									
									
									
									
								
							@@ -77,6 +77,7 @@ SRCS=	arguments.c \
 | 
			
		||||
	cmd-switch-client.c \
 | 
			
		||||
	cmd-unbind-key.c \
 | 
			
		||||
	cmd-unlink-window.c \
 | 
			
		||||
	cmd-wait-for.c \
 | 
			
		||||
	cmd.c \
 | 
			
		||||
	cmd-queue.c \
 | 
			
		||||
	colour.c \
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								cmd.c
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								cmd.c
									
									
									
									
									
								
							@@ -113,6 +113,7 @@ const struct cmd_entry *cmd_table[] = {
 | 
			
		||||
	&cmd_switch_client_entry,
 | 
			
		||||
	&cmd_unbind_key_entry,
 | 
			
		||||
	&cmd_unlink_window_entry,
 | 
			
		||||
	&cmd_wait_for_entry,
 | 
			
		||||
	NULL
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@@ -327,9 +328,9 @@ cmd_current_session(struct cmd_q *cmdq, int prefer_unattached)
 | 
			
		||||
		return (c->session);
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * If the name of the calling client's pty is know, build a list of the
 | 
			
		||||
	 * sessions that contain it and if any choose either the first or the
 | 
			
		||||
	 * newest.
 | 
			
		||||
	 * If the name of the calling client's pty is known, build a list of
 | 
			
		||||
	 * the sessions that contain it and if any choose either the first or
 | 
			
		||||
	 * the newest.
 | 
			
		||||
	 */
 | 
			
		||||
	path = c == NULL ? NULL : c->tty.path;
 | 
			
		||||
	if (path != NULL) {
 | 
			
		||||
@@ -532,7 +533,7 @@ cmd_lookup_client(const char *name)
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < ARRAY_LENGTH(&clients); i++) {
 | 
			
		||||
		c = ARRAY_ITEM(&clients, i);
 | 
			
		||||
		if (c == NULL || c->session == NULL)
 | 
			
		||||
		if (c == NULL || c->session == NULL || c->tty.path == NULL)
 | 
			
		||||
			continue;
 | 
			
		||||
		path = c->tty.path;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								tmux.h
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								tmux.h
									
									
									
									
									
								
							@@ -1420,6 +1420,8 @@ struct cmd_q {
 | 
			
		||||
	void			*data;
 | 
			
		||||
 | 
			
		||||
	struct msg_command_data	*msgdata;
 | 
			
		||||
 | 
			
		||||
	TAILQ_ENTRY(cmd_q)       waitentry;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Command definition. */
 | 
			
		||||
@@ -1839,6 +1841,7 @@ extern const struct cmd_entry cmd_switch_client_entry;
 | 
			
		||||
extern const struct cmd_entry cmd_unbind_key_entry;
 | 
			
		||||
extern const struct cmd_entry cmd_unlink_window_entry;
 | 
			
		||||
extern const struct cmd_entry cmd_up_pane_entry;
 | 
			
		||||
extern const struct cmd_entry cmd_wait_for_entry;
 | 
			
		||||
 | 
			
		||||
/* cmd-attach-session.c */
 | 
			
		||||
enum cmd_retval	 cmd_attach_session(struct cmd_q *, const char*, int, int);
 | 
			
		||||
@@ -2006,7 +2009,7 @@ void	 grid_clear_lines(struct grid *, u_int, u_int);
 | 
			
		||||
void	 grid_move_lines(struct grid *, u_int, u_int, u_int);
 | 
			
		||||
void	 grid_move_cells(struct grid *, u_int, u_int, u_int, u_int);
 | 
			
		||||
char	*grid_string_cells(struct grid *, u_int, u_int, u_int,
 | 
			
		||||
	     struct grid_cell **, int, int);
 | 
			
		||||
	     struct grid_cell **, int, int, int);
 | 
			
		||||
void	 grid_duplicate_lines(
 | 
			
		||||
	     struct grid *, u_int, struct grid *, u_int, u_int);
 | 
			
		||||
u_int	 grid_reflow(struct grid *, struct grid *, u_int);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user