diff options
author | 2017-05-01 12:20:55 +0000 | |
---|---|---|
committer | 2017-05-01 12:20:55 +0000 | |
commit | d559dd45c594cdabf93a350fe402dc4fa248c88f (patch) | |
tree | b0a025e4e76ef5226af8bf3872d669269ab10e68 /usr.bin/tmux/tmux.h | |
parent | in function used for tracing, display unknown lookup types as "???" (diff) | |
download | wireguard-openbsd-d559dd45c594cdabf93a350fe402dc4fa248c88f.tar.xz wireguard-openbsd-d559dd45c594cdabf93a350fe402dc4fa248c88f.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 'usr.bin/tmux/tmux.h')
-rw-r--r-- | usr.bin/tmux/tmux.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/usr.bin/tmux/tmux.h b/usr.bin/tmux/tmux.h index d5aef5774cf..fa09693f82b 100644 --- a/usr.bin/tmux/tmux.h +++ b/usr.bin/tmux/tmux.h @@ -1,4 +1,4 @@ -/* $OpenBSD: tmux.h,v 1.755 2017/04/28 19:13:55 nicm Exp $ */ +/* $OpenBSD: tmux.h,v 1.756 2017/05/01 12:20:55 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com> @@ -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; |