/* Set default format keys for a session. */ void format_session(struct format_tree *ft, struct session *s) { struct session_group *sg; char *tim; time_t t; format_add(ft, "session_name", "%s", s->name); format_add(ft, "session_windows", "%u", winlink_count(&s->windows)); format_add(ft, "session_width", "%u", s->sx); format_add(ft, "session_height", "%u", s->sy); format_add(ft, "session_id", "$%u", s->id); sg = session_group_find(s); format_add(ft, "session_grouped", "%d", sg != NULL); if (sg != NULL) format_add(ft, "session_group", "%u", session_group_index(sg)); t = s->creation_time.tv_sec; format_add(ft, "session_created", "%lld", (long long) t); tim = ctime(&t); *strchr(tim, '\n') = '\0'; format_add(ft, "session_created_string", "%s", tim); format_add(ft, "session_attached", "%u", s->attached); format_add(ft, "session_many_attached", "%u", s->attached > 1); }
int cmd_list_sessions_exec(unused struct cmd *self, struct cmd_ctx *ctx) { struct session *s; struct session_group *sg; char *tim, tmp[64]; u_int i, idx; time_t t; for (i = 0; i < ARRAY_LENGTH(&sessions); i++) { s = ARRAY_ITEM(&sessions, i); if (s == NULL) continue; sg = session_group_find(s); if (sg == NULL) *tmp = '\0'; else { idx = session_group_index(sg); xsnprintf(tmp, sizeof tmp, " (group %u)", idx); } t = s->creation_time.tv_sec; tim = ctime(&t); *strchr(tim, '\n') = '\0'; ctx->print(ctx, "%s: %u windows (created %s) [%ux%u]%s%s", s->name, winlink_count(&s->windows), tim, s->sx, s->sy, tmp, s->flags & SESSION_UNATTACHED ? "" : " (attached)"); } return (0); }
int cmd_list_sessions_exec(unused struct cmd *self, struct cmd_ctx *ctx) { struct session *s; char *tim; u_int i; time_t t; for (i = 0; i < ARRAY_LENGTH(&sessions); i++) { s = ARRAY_ITEM(&sessions, i); if (s == NULL) continue; t = s->tv.tv_sec; tim = ctime(&t); *strchr(tim, '\n') = '\0'; ctx->print(ctx, "%s: %u windows (created %s) [%ux%u]%s", s->name, winlink_count(&s->windows), tim, s->sx, s->sy, s->flags & SESSION_UNATTACHED ? "" : " (attached)"); } return (0); }