version 1.11, 2011/01/04 00:42:46 |
version 1.12, 2011/03/28 23:13:00 |
|
|
|
|
int cmd_list_windows_exec(struct cmd *, struct cmd_ctx *); |
int cmd_list_windows_exec(struct cmd *, struct cmd_ctx *); |
|
|
|
void cmd_list_windows_server(struct cmd_ctx *); |
|
void cmd_list_windows_session(struct session *, struct cmd_ctx *); |
|
|
const struct cmd_entry cmd_list_windows_entry = { |
const struct cmd_entry cmd_list_windows_entry = { |
"list-windows", "lsw", |
"list-windows", "lsw", |
"t:", 0, 0, |
"at:", 0, 0, |
CMD_TARGET_SESSION_USAGE, |
"[-a] " CMD_TARGET_SESSION_USAGE, |
0, |
0, |
NULL, |
NULL, |
NULL, |
NULL, |
|
|
{ |
{ |
struct args *args = self->args; |
struct args *args = self->args; |
struct session *s; |
struct session *s; |
|
|
|
if (args_has(args, 'a')) |
|
cmd_list_windows_server(ctx); |
|
else { |
|
s = cmd_find_session(ctx, args_get(args, 't')); |
|
if (s == NULL) |
|
return (-1); |
|
cmd_list_windows_session(s, ctx); |
|
} |
|
|
|
return (0); |
|
} |
|
|
|
void |
|
cmd_list_windows_server(struct cmd_ctx *ctx) |
|
{ |
|
struct session *s; |
|
|
|
RB_FOREACH(s, sessions, &sessions) |
|
cmd_list_windows_session(s, ctx); |
|
} |
|
|
|
void |
|
cmd_list_windows_session(struct session *s, struct cmd_ctx *ctx) |
|
{ |
struct winlink *wl; |
struct winlink *wl; |
char *layout; |
char *layout; |
|
|
if ((s = cmd_find_session(ctx, args_get(args, 't'))) == NULL) |
|
return (-1); |
|
|
|
RB_FOREACH(wl, winlinks, &s->windows) { |
RB_FOREACH(wl, winlinks, &s->windows) { |
layout = layout_dump(wl->window); |
layout = layout_dump(wl->window); |
ctx->print(ctx, "%d: %s [%ux%u] [layout %s]%s", |
ctx->print(ctx, "%d: %s [%ux%u] [layout %s]%s", |
|
|
layout, wl == s->curw ? " (active)" : ""); |
layout, wl == s->curw ? " (active)" : ""); |
xfree(layout); |
xfree(layout); |
} |
} |
|
|
return (0); |
|
} |
} |