aboutsummaryrefslogtreecommitdiff
path: root/tmux.h
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2015-12-08 07:11:09 +0000
committerThomas Adam <thomas@xteddy.org>2015-12-08 07:11:09 +0000
commit5862f59ed7c54959af6d112a647ae3c273579b77 (patch)
tree4cba465137c22437f602775f100d22b9ea9794cd /tmux.h
parent98994a8bb1ca7602f16a5de0d4482efd299f5d7b (diff)
parentd2fb0efcd197bf0d581a0f7b1e27223d095cb339 (diff)
downloadrtmux-5862f59ed7c54959af6d112a647ae3c273579b77.tar.gz
rtmux-5862f59ed7c54959af6d112a647ae3c273579b77.tar.bz2
rtmux-5862f59ed7c54959af6d112a647ae3c273579b77.zip
Conflicts:
Makefile
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 84c441f4..c3dd6c4f 100644
--- a/tmux.h
+++ b/tmux.h
@@ -693,6 +693,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;
@@ -1013,6 +1021,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 */
@@ -1429,10 +1438,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);
@@ -1497,6 +1507,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;
@@ -1784,6 +1806,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 *);