=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/format.c,v retrieving revision 1.111 retrieving revision 1.112 diff -c -r1.111 -r1.112 *** src/usr.bin/tmux/format.c 2016/10/16 19:04:05 1.111 --- src/usr.bin/tmux/format.c 2016/10/16 19:36:37 1.112 *************** *** 1,4 **** ! /* $OpenBSD: format.c,v 1.111 2016/10/16 19:04:05 nicm Exp $ */ /* * Copyright (c) 2011 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: format.c,v 1.112 2016/10/16 19:36:37 nicm Exp $ */ /* * Copyright (c) 2011 Nicholas Marriott *************** *** 468,473 **** --- 468,486 ---- evbuffer_free(buffer); } + /* Merge a format tree. */ + static void + format_merge(struct format_tree *ft, struct format_tree *from) + { + struct format_entry *fe; + + RB_FOREACH(fe, format_entry_tree, &from->tree) { + if (fe->value != NULL) + format_add(ft, fe->key, "%s", fe->value); + } + + } + /* Create a new tree. */ struct format_tree * format_create(struct cmdq_item *item, int flags) *************** *** 491,498 **** if (item != NULL && item->cmd != NULL) format_add(ft, "command", "%s", item->cmd->entry->name); ! if (item != NULL && item->hook != NULL) ! format_add(ft, "hook", "%s", item->hook); return (ft); } --- 504,511 ---- if (item != NULL && item->cmd != NULL) format_add(ft, "command", "%s", item->cmd->entry->name); ! if (item != NULL && item->formats != NULL) ! format_merge(ft, item->formats); return (ft); }