mirror of
https://github.com/tmux/tmux.git
synced 2025-09-02 05:21:10 +00:00
Add a window or pane id "tag" to each format tree and use it to separate
jobs, this means that if the same job is used for different windows or panes (for example in pane-border-format), it will be run separately for each pane.
This commit is contained in:
15
status.c
15
status.c
@ -500,14 +500,19 @@ status_replace(struct client *c, struct winlink *wl, const char *fmt, time_t t)
|
||||
{
|
||||
struct format_tree *ft;
|
||||
char *expanded;
|
||||
u_int tag;
|
||||
|
||||
if (fmt == NULL)
|
||||
return (xstrdup(""));
|
||||
|
||||
if (c->flags & CLIENT_STATUSFORCE)
|
||||
ft = format_create(NULL, FORMAT_STATUS|FORMAT_FORCE);
|
||||
if (wl != NULL)
|
||||
tag = FORMAT_WINDOW|wl->window->id;
|
||||
else
|
||||
ft = format_create(NULL, FORMAT_STATUS);
|
||||
tag = FORMAT_NONE;
|
||||
if (c->flags & CLIENT_STATUSFORCE)
|
||||
ft = format_create(NULL, tag, FORMAT_STATUS|FORMAT_FORCE);
|
||||
else
|
||||
ft = format_create(NULL, tag, FORMAT_STATUS);
|
||||
format_defaults(ft, c, NULL, wl, NULL);
|
||||
|
||||
expanded = format_expand_time(ft, fmt, t);
|
||||
@ -665,7 +670,7 @@ status_prompt_set(struct client *c, const char *msg, const char *input,
|
||||
time_t t;
|
||||
char *tmp;
|
||||
|
||||
ft = format_create(NULL, 0);
|
||||
ft = format_create(NULL, FORMAT_NONE, 0);
|
||||
format_defaults(ft, c, NULL, NULL, NULL);
|
||||
|
||||
t = time(NULL);
|
||||
@ -726,7 +731,7 @@ status_prompt_update(struct client *c, const char *msg, const char *input)
|
||||
time_t t;
|
||||
char *tmp;
|
||||
|
||||
ft = format_create(NULL, 0);
|
||||
ft = format_create(NULL, FORMAT_NONE, 0);
|
||||
format_defaults(ft, c, NULL, NULL, NULL);
|
||||
|
||||
t = time(NULL);
|
||||
|
Reference in New Issue
Block a user