version 1.1048, 2020/05/16 16:50:55 |
version 1.1049, 2020/05/21 07:24:13 |
|
|
TAILQ_ENTRY (window_mode_entry) entry; |
TAILQ_ENTRY (window_mode_entry) entry; |
}; |
}; |
|
|
|
/* Offsets into pane buffer. */ |
|
struct window_pane_offset { |
|
size_t used; |
|
size_t acknowledged; |
|
}; |
|
|
/* Child window structure. */ |
/* Child window structure. */ |
struct window_pane { |
struct window_pane { |
u_int id; |
u_int id; |
|
|
|
|
int fd; |
int fd; |
struct bufferevent *event; |
struct bufferevent *event; |
|
struct window_pane_offset offset; |
|
size_t base_offset; |
|
|
struct event resize_timer; |
struct event resize_timer; |
|
|
|
|
|
|
int pipe_fd; |
int pipe_fd; |
struct bufferevent *pipe_event; |
struct bufferevent *pipe_event; |
size_t pipe_off; |
struct window_pane_offset pipe_offset; |
|
|
struct screen *screen; |
struct screen *screen; |
struct screen base; |
struct screen base; |
|
|
}; |
}; |
RB_HEAD(client_windows, client_window); |
RB_HEAD(client_windows, client_window); |
|
|
|
/* Client offsets. */ |
|
struct client_offset { |
|
u_int pane; |
|
|
|
struct window_pane_offset offset; |
|
int flags; |
|
#define CLIENT_OFFSET_OFF 0x1 |
|
|
|
RB_ENTRY(client_offset) entry; |
|
}; |
|
RB_HEAD(client_offsets, client_offset); |
|
|
/* Client connection. */ |
/* Client connection. */ |
typedef int (*prompt_input_cb)(struct client *, void *, const char *, int); |
typedef int (*prompt_input_cb)(struct client *, void *, const char *, int); |
typedef void (*prompt_free_cb)(void *); |
typedef void (*prompt_free_cb)(void *); |
|
|
struct cmdq_list *queue; |
struct cmdq_list *queue; |
|
|
struct client_windows windows; |
struct client_windows windows; |
|
struct client_offsets offsets; |
|
|
pid_t pid; |
pid_t pid; |
int fd; |
int fd; |
|
|
|
|
/* notify.c */ |
/* notify.c */ |
void notify_hook(struct cmdq_item *, const char *); |
void notify_hook(struct cmdq_item *, const char *); |
void notify_input(struct window_pane *, const u_char *, size_t); |
|
void notify_client(const char *, struct client *); |
void notify_client(const char *, struct client *); |
void notify_session(const char *, struct session *); |
void notify_session(const char *, struct session *); |
void notify_winlink(const char *, struct winlink *); |
void notify_winlink(const char *, struct winlink *); |
|
|
|
|
/* server-client.c */ |
/* server-client.c */ |
RB_PROTOTYPE(client_windows, client_window, entry, server_client_window_cmp); |
RB_PROTOTYPE(client_windows, client_window, entry, server_client_window_cmp); |
|
RB_PROTOTYPE(client_offsets, client_offset, entry, server_client_offset_cmp); |
|
struct client_offset *server_client_get_pane_offset(struct client *, |
|
struct window_pane *); |
|
struct client_offset *server_client_add_pane_offset(struct client *, |
|
struct window_pane *); |
u_int server_client_how_many(void); |
u_int server_client_how_many(void); |
void server_client_set_overlay(struct client *, u_int, overlay_check_cb, |
void server_client_set_overlay(struct client *, u_int, overlay_check_cb, |
overlay_mode_cb, overlay_draw_cb, overlay_key_cb, |
overlay_mode_cb, overlay_draw_cb, overlay_key_cb, |
|
|
int winlink_shuffle_up(struct session *, struct winlink *); |
int winlink_shuffle_up(struct session *, struct winlink *); |
int window_pane_start_input(struct window_pane *, |
int window_pane_start_input(struct window_pane *, |
struct cmdq_item *, char **); |
struct cmdq_item *, char **); |
|
void *window_pane_get_new_data(struct window_pane *, |
|
struct window_pane_offset *, size_t *); |
|
void window_pane_update_used_data(struct window_pane *, |
|
struct window_pane_offset *, size_t, int); |
|
void window_pane_acknowledge_data(struct window_pane *, |
|
struct window_pane_offset *, size_t); |
|
|
/* layout.c */ |
/* layout.c */ |
u_int layout_count_cells(struct layout_cell *); |
u_int layout_count_cells(struct layout_cell *); |
|
|
/* control.c */ |
/* control.c */ |
void control_start(struct client *); |
void control_start(struct client *); |
void printflike(2, 3) control_write(struct client *, const char *, ...); |
void printflike(2, 3) control_write(struct client *, const char *, ...); |
|
void control_write_output(struct client *, struct window_pane *); |
|
|
/* control-notify.c */ |
/* control-notify.c */ |
void control_notify_input(struct client *, struct window_pane *, |
void control_notify_input(struct client *, struct window_pane *, |