=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/format.c,v retrieving revision 1.18 retrieving revision 1.19 diff -c -r1.18 -r1.19 *** src/usr.bin/tmux/format.c 2013/03/24 09:23:00 1.18 --- src/usr.bin/tmux/format.c 2013/03/24 09:29:40 1.19 *************** *** 1,4 **** ! /* $OpenBSD: format.c,v 1.18 2013/03/24 09:23:00 nicm Exp $ */ /* * Copyright (c) 2011 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: format.c,v 1.19 2013/03/24 09:29:40 nicm Exp $ */ /* * Copyright (c) 2011 Nicholas Marriott *************** *** 32,39 **** * string. */ ! int format_replace(struct format_tree *, ! const char *, size_t, char **, size_t *, size_t *); /* Format key-value replacement entry. */ RB_GENERATE(format_tree, format_entry, entry, format_cmp); --- 32,40 ---- * string. */ ! int format_replace(struct format_tree *, const char *, size_t, char **, ! size_t *, size_t *); ! void format_window_pane_tabs(struct format_tree *, struct window_pane *); /* Format key-value replacement entry. */ RB_GENERATE(format_tree, format_entry, entry, format_cmp); *************** *** 367,372 **** --- 368,395 ---- free(layout); } + /* Add window pane tabs. */ + void + format_window_pane_tabs(struct format_tree *ft, struct window_pane *wp) + { + struct evbuffer *buffer; + u_int i; + + buffer = evbuffer_new(); + for (i = 0; i < wp->base.grid->sx; i++) { + if (!bit_test(wp->base.tabs, i)) + continue; + + if (EVBUFFER_LENGTH(buffer) > 0) + evbuffer_add(buffer, ",", 1); + evbuffer_add_printf(buffer, "%d", i); + } + + format_add(ft, "pane_tabs", "%.*s", (int) EVBUFFER_LENGTH(buffer), + EVBUFFER_DATA(buffer)); + evbuffer_free(buffer); + } + /* Set default format keys for a window pane. */ void format_window_pane(struct format_tree *ft, struct window_pane *wp) *************** *** 444,451 **** --- 467,477 ---- !!(wp->base.mode & MODE_MOUSE_ANY)); format_add(ft, "mouse_utf8_flag", "%d", !!(wp->base.mode & MODE_MOUSE_UTF8)); + + format_window_pane_tabs(ft, wp); } + /* Set default format keys for paste buffer. */ void format_paste_buffer(struct format_tree *ft, struct paste_buffer *pb) {