mirror of
https://github.com/tmate-io/tmate.git
synced 2024-11-07 16:54:01 +01: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:
parent
304336a591
commit
410a3abbef
1
Makefile
1
Makefile
@ -77,6 +77,7 @@ SRCS= arguments.c \
|
|||||||
cmd-switch-client.c \
|
cmd-switch-client.c \
|
||||||
cmd-unbind-key.c \
|
cmd-unbind-key.c \
|
||||||
cmd-unlink-window.c \
|
cmd-unlink-window.c \
|
||||||
|
cmd-wait-for.c \
|
||||||
cmd.c \
|
cmd.c \
|
||||||
cmd-queue.c \
|
cmd-queue.c \
|
||||||
colour.c \
|
colour.c \
|
||||||
|
9
cmd.c
9
cmd.c
@ -113,6 +113,7 @@ const struct cmd_entry *cmd_table[] = {
|
|||||||
&cmd_switch_client_entry,
|
&cmd_switch_client_entry,
|
||||||
&cmd_unbind_key_entry,
|
&cmd_unbind_key_entry,
|
||||||
&cmd_unlink_window_entry,
|
&cmd_unlink_window_entry,
|
||||||
|
&cmd_wait_for_entry,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -327,9 +328,9 @@ cmd_current_session(struct cmd_q *cmdq, int prefer_unattached)
|
|||||||
return (c->session);
|
return (c->session);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If the name of the calling client's pty is know, build a list of the
|
* If the name of the calling client's pty is known, build a list of
|
||||||
* sessions that contain it and if any choose either the first or the
|
* the sessions that contain it and if any choose either the first or
|
||||||
* newest.
|
* the newest.
|
||||||
*/
|
*/
|
||||||
path = c == NULL ? NULL : c->tty.path;
|
path = c == NULL ? NULL : c->tty.path;
|
||||||
if (path != NULL) {
|
if (path != NULL) {
|
||||||
@ -532,7 +533,7 @@ cmd_lookup_client(const char *name)
|
|||||||
|
|
||||||
for (i = 0; i < ARRAY_LENGTH(&clients); i++) {
|
for (i = 0; i < ARRAY_LENGTH(&clients); i++) {
|
||||||
c = ARRAY_ITEM(&clients, i);
|
c = ARRAY_ITEM(&clients, i);
|
||||||
if (c == NULL || c->session == NULL)
|
if (c == NULL || c->session == NULL || c->tty.path == NULL)
|
||||||
continue;
|
continue;
|
||||||
path = c->tty.path;
|
path = c->tty.path;
|
||||||
|
|
||||||
|
5
tmux.h
5
tmux.h
@ -1420,6 +1420,8 @@ struct cmd_q {
|
|||||||
void *data;
|
void *data;
|
||||||
|
|
||||||
struct msg_command_data *msgdata;
|
struct msg_command_data *msgdata;
|
||||||
|
|
||||||
|
TAILQ_ENTRY(cmd_q) waitentry;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Command definition. */
|
/* 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_unbind_key_entry;
|
||||||
extern const struct cmd_entry cmd_unlink_window_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_up_pane_entry;
|
||||||
|
extern const struct cmd_entry cmd_wait_for_entry;
|
||||||
|
|
||||||
/* cmd-attach-session.c */
|
/* cmd-attach-session.c */
|
||||||
enum cmd_retval cmd_attach_session(struct cmd_q *, const char*, int, int);
|
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_lines(struct grid *, u_int, u_int, u_int);
|
||||||
void grid_move_cells(struct grid *, u_int, 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,
|
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(
|
void grid_duplicate_lines(
|
||||||
struct grid *, u_int, struct grid *, u_int, u_int);
|
struct grid *, u_int, struct grid *, u_int, u_int);
|
||||||
u_int grid_reflow(struct grid *, struct grid *, u_int);
|
u_int grid_reflow(struct grid *, struct grid *, u_int);
|
||||||
|
Loading…
Reference in New Issue
Block a user