aboutsummaryrefslogtreecommitdiff
path: root/tmux.h
diff options
context:
space:
mode:
authornicm <nicm>2017-05-01 12:20:55 +0000
committernicm <nicm>2017-05-01 12:20:55 +0000
commit0ccfb61bb0e0beb5fe76b64e30637de7d9f696c7 (patch)
treebf5f11802d7ec1338ee17e893591bdae80d2c197 /tmux.h
parenta2dd7daf4e583ebb9ddc9d7cf09105c43df51399 (diff)
downloadrtmux-0ccfb61bb0e0beb5fe76b64e30637de7d9f696c7.tar.gz
rtmux-0ccfb61bb0e0beb5fe76b64e30637de7d9f696c7.tar.bz2
rtmux-0ccfb61bb0e0beb5fe76b64e30637de7d9f696c7.zip
In order that people can use formats like #D in #() in the status line
and not have to wait for an update when they change pane, we allow commands to run more than once a second if the expanded form changes. Unfortunately this can mean them being run far too often (pretty much continually) when multiple clients exist, because some formats (including #D) will always differ between clients. To avoid this, give each client its own tree of jobs which means that the same command will be different instances for each client - similar to how we have the tag to separate commands for different panes. GitHub issue 889; test case reported by Paul Johnson.
Diffstat (limited to 'tmux.h')
-rw-r--r--tmux.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/tmux.h b/tmux.h
index 33f7f4e3..276636e8 100644
--- a/tmux.h
+++ b/tmux.h
@@ -43,6 +43,7 @@ struct client;
struct cmdq_item;
struct cmdq_list;
struct environ;
+struct format_job_tree;
struct input_ctx;
struct mode_key_cmdstr;
struct mouse_event;
@@ -1290,6 +1291,7 @@ struct client {
struct timeval activity_time;
struct environ *environ;
+ struct format_job_tree *jobs;
char *title;
const char *cwd;
@@ -1501,7 +1503,8 @@ char *paste_make_sample(struct paste_buffer *);
#define FORMAT_PANE 0x80000000U
#define FORMAT_WINDOW 0x40000000U
struct format_tree;
-struct format_tree *format_create(struct cmdq_item *, int, int);
+struct format_tree *format_create(struct client *, struct cmdq_item *, int,
+ int);
void format_free(struct format_tree *);
void printflike(3, 4) format_add(struct format_tree *, const char *,
const char *, ...);
@@ -1517,6 +1520,7 @@ void format_defaults_pane(struct format_tree *,
struct window_pane *);
void format_defaults_paste_buffer(struct format_tree *,
struct paste_buffer *);
+void format_lost_client(struct client *);
/* hooks.c */
struct hook;