mirror of
https://github.com/tmux/tmux.git
synced 2025-09-03 22:43:58 +00:00
Merge branch 'obsd-master'
This commit is contained in:
12
format.c
12
format.c
@ -81,6 +81,7 @@ static void format_defaults_winlink(struct format_tree *, struct session *,
|
||||
|
||||
/* Entry in format job tree. */
|
||||
struct format_job {
|
||||
u_int tag;
|
||||
const char *cmd;
|
||||
const char *expanded;
|
||||
|
||||
@ -103,6 +104,10 @@ RB_GENERATE_STATIC(format_job_tree, format_job, entry, format_job_cmp);
|
||||
static int
|
||||
format_job_cmp(struct format_job *fj1, struct format_job *fj2)
|
||||
{
|
||||
if (fj1->tag < fj2->tag)
|
||||
return (-1);
|
||||
if (fj1->tag > fj2->tag)
|
||||
return (1);
|
||||
return (strcmp(fj1->cmd, fj2->cmd));
|
||||
}
|
||||
|
||||
@ -127,6 +132,7 @@ struct format_tree {
|
||||
struct session *s;
|
||||
struct window_pane *wp;
|
||||
|
||||
u_int tag;
|
||||
int flags;
|
||||
|
||||
RB_HEAD(format_entry_tree, format_entry) tree;
|
||||
@ -242,9 +248,11 @@ format_job_get(struct format_tree *ft, const char *cmd)
|
||||
char *expanded;
|
||||
int force;
|
||||
|
||||
fj0.tag = ft->tag;
|
||||
fj0.cmd = cmd;
|
||||
if ((fj = RB_FIND(format_job_tree, &format_jobs, &fj0)) == NULL) {
|
||||
fj = xcalloc(1, sizeof *fj);
|
||||
fj->tag = ft->tag;
|
||||
fj->cmd = xstrdup(cmd);
|
||||
fj->expanded = NULL;
|
||||
|
||||
@ -516,7 +524,7 @@ format_merge(struct format_tree *ft, struct format_tree *from)
|
||||
|
||||
/* Create a new tree. */
|
||||
struct format_tree *
|
||||
format_create(struct cmdq_item *item, int flags)
|
||||
format_create(struct cmdq_item *item, int tag, int flags)
|
||||
{
|
||||
struct format_tree *ft;
|
||||
|
||||
@ -527,6 +535,8 @@ format_create(struct cmdq_item *item, int flags)
|
||||
|
||||
ft = xcalloc(1, sizeof *ft);
|
||||
RB_INIT(&ft->tree);
|
||||
|
||||
ft->tag = tag;
|
||||
ft->flags = flags;
|
||||
|
||||
format_add(ft, "version", "%s", VERSION);
|
||||
|
Reference in New Issue
Block a user