=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/Attic/cmd-choose-session.c,v retrieving revision 1.12 retrieving revision 1.13 diff -c -r1.12 -r1.13 *** src/usr.bin/tmux/Attic/cmd-choose-session.c 2011/01/04 00:42:46 1.12 --- src/usr.bin/tmux/Attic/cmd-choose-session.c 2012/05/22 11:35:37 1.13 *************** *** 1,4 **** ! /* $OpenBSD: cmd-choose-session.c,v 1.12 2011/01/04 00:42:46 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: cmd-choose-session.c,v 1.13 2012/05/22 11:35:37 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott *************** *** 33,40 **** const struct cmd_entry cmd_choose_session_entry = { "choose-session", NULL, ! "t:", 0, 1, ! CMD_TARGET_WINDOW_USAGE " [template]", 0, NULL, NULL, --- 33,40 ---- const struct cmd_entry cmd_choose_session_entry = { "choose-session", NULL, ! "F:t:", 0, 1, ! CMD_TARGET_WINDOW_USAGE " [-F format] [template]", 0, NULL, NULL, *************** *** 53,61 **** struct cmd_choose_session_data *cdata; struct winlink *wl; struct session *s; ! struct session_group *sg; ! u_int idx, sgidx, cur; ! char tmp[64]; if (ctx->curclient == NULL) { ctx->error(ctx, "must be run interactively"); --- 53,62 ---- struct cmd_choose_session_data *cdata; struct winlink *wl; struct session *s; ! struct format_tree *ft; ! const char *template; ! char *line; ! u_int idx, cur; if (ctx->curclient == NULL) { ctx->error(ctx, "must be run interactively"); *************** *** 68,91 **** if (window_pane_set_mode(wl->window->active, &window_choose_mode) != 0) return (0); cur = idx = 0; RB_FOREACH(s, sessions, &sessions) { if (s == ctx->curclient->session) cur = idx; idx++; ! sg = session_group_find(s); ! if (sg == NULL) ! *tmp = '\0'; ! else { ! sgidx = session_group_index(sg); ! xsnprintf(tmp, sizeof tmp, " (group %u)", sgidx); ! } ! window_choose_add(wl->window->active, s->idx, ! "%s: %u windows [%ux%u]%s%s", s->name, ! winlink_count(&s->windows), s->sx, s->sy, ! tmp, s->flags & SESSION_UNATTACHED ? "" : " (attached)"); } cdata = xmalloc(sizeof *cdata); --- 69,92 ---- if (window_pane_set_mode(wl->window->active, &window_choose_mode) != 0) return (0); + if ((template = args_get(args, 'F')) == NULL) + template = DEFAULT_SESSION_TEMPLATE; + cur = idx = 0; RB_FOREACH(s, sessions, &sessions) { if (s == ctx->curclient->session) cur = idx; idx++; ! ft = format_create(); ! format_add(ft, "line", "%u", idx); ! format_session(ft, s); ! line = format_expand(ft, template); ! window_choose_add(wl->window->active, s->idx, "%s", line); ! xfree(line); ! ! format_free(ft); } cdata = xmalloc(sizeof *cdata);