aboutsummaryrefslogtreecommitdiff
path: root/tmux.h
diff options
context:
space:
mode:
Diffstat (limited to 'tmux.h')
-rw-r--r--tmux.h31
1 files changed, 27 insertions, 4 deletions
diff --git a/tmux.h b/tmux.h
index a1e16955..fa589f57 100644
--- a/tmux.h
+++ b/tmux.h
@@ -691,6 +691,14 @@ struct grid {
struct grid_line *linedata;
};
+/* Hook data structures. */
+struct hook {
+ const char *name;
+ struct cmd_q *cmdq;
+ struct cmd_list *cmdlist;
+ RB_ENTRY(hook) entry;
+};
+
/* Option data structures. */
struct options_entry {
char *name;
@@ -1011,6 +1019,7 @@ struct session {
struct winlink_stack lastw;
struct winlinks windows;
+ struct hooks *hooks;
struct options *options;
#define SESSION_UNATTACHED 0x1 /* not attached to any clients */
@@ -1427,10 +1436,11 @@ struct options_table_entry {
#define CMD_BUFFER_USAGE "[-b buffer-name]"
/* tmux.c */
-extern struct options *global_options;
-extern struct options *global_s_options;
-extern struct options *global_w_options;
-extern struct environ *global_environ;
+extern struct hooks *global_hooks;
+extern struct options *global_options;
+extern struct options *global_s_options;
+extern struct options *global_w_options;
+extern struct environ *global_environ;
extern struct timeval start_time;
extern const char *socket_path;
const char *getshell(void);
@@ -1495,6 +1505,18 @@ void format_defaults_pane(struct format_tree *,
void format_defaults_paste_buffer(struct format_tree *,
struct paste_buffer *);
+/* hooks.c */
+struct hook;
+struct hooks *hooks_create(struct hooks *);
+void hooks_free(struct hooks *);
+struct hook *hooks_first(struct hooks *);
+struct hook *hooks_next(struct hook *);
+void hooks_add(struct hooks *, const char *, struct cmd_list *);
+void hooks_copy(struct hooks *, struct hooks *);
+void hooks_remove(struct hooks *, struct hook *);
+struct hook *hooks_find(struct hooks *, const char *);
+void hooks_run(struct hooks *, const char *, struct client *);
+
/* mode-key.c */
extern const struct mode_key_table mode_key_tables[];
extern struct mode_key_tree mode_key_tree_vi_edit;
@@ -1782,6 +1804,7 @@ void server_client_create(int);
int server_client_open(struct client *, char **);
void server_client_unref(struct client *);
void server_client_lost(struct client *);
+void server_client_detach(struct client *, enum msgtype);
void server_client_loop(void);
void server_client_push_stdout(struct client *);
void server_client_push_stderr(struct client *);