summaryrefslogtreecommitdiffstats
path: root/cmd-show-messages.c
diff options
context:
space:
mode:
Diffstat (limited to 'cmd-show-messages.c')
-rw-r--r--cmd-show-messages.c26
1 files changed, 12 insertions, 14 deletions
diff --git a/cmd-show-messages.c b/cmd-show-messages.c
index 8da12374..02fdb9cd 100644
--- a/cmd-show-messages.c
+++ b/cmd-show-messages.c
@@ -38,26 +38,28 @@ const struct cmd_entry cmd_show_messages_entry = {
.args = { "JTt:", 0, 0 },
.usage = "[-JT] " CMD_TARGET_CLIENT_USAGE,
- .flags = CMD_AFTERHOOK,
+ .flags = CMD_AFTERHOOK|CMD_CLIENT_TFLAG,
.exec = cmd_show_messages_exec
};
-static int cmd_show_messages_terminals(struct cmdq_item *, int);
-
static int
-cmd_show_messages_terminals(struct cmdq_item *item, int blank)
+cmd_show_messages_terminals(struct cmd *self, struct cmdq_item *item, int blank)
{
+ struct args *args = cmd_get_args(self);
+ struct client *tc = cmdq_get_target_client(item);
struct tty_term *term;
u_int i, n;
n = 0;
LIST_FOREACH(term, &tty_terms, entry) {
+ if (args_has(args, 't') && term != tc->tty.term)
+ continue;
if (blank) {
cmdq_print(item, "%s", "");
blank = 0;
}
- cmdq_print(item, "Terminal %u: %s [references=%u, flags=0x%x]:",
- n, term->name, term->references, term->flags);
+ cmdq_print(item, "Terminal %u: %s for %s, flags=0x%x:", n,
+ term->name, term->tty->client->name, term->flags);
n++;
for (i = 0; i < tty_term_ncodes(); i++)
cmdq_print(item, "%s", tty_term_describe(term, i));
@@ -68,18 +70,15 @@ cmd_show_messages_terminals(struct cmdq_item *item, int blank)
static enum cmd_retval
cmd_show_messages_exec(struct cmd *self, struct cmdq_item *item)
{
- struct args *args = self->args;
- struct client *c;
+ struct args *args = cmd_get_args(self);
+ struct client *tc = cmdq_get_target_client(item);
struct message_entry *msg;
char *tim;
int done, blank;
- if ((c = cmd_find_client(item, args_get(args, 't'), 0)) == NULL)
- return (CMD_RETURN_ERROR);
-
done = blank = 0;
if (args_has(args, 'T')) {
- blank = cmd_show_messages_terminals(item, blank);
+ blank = cmd_show_messages_terminals(self, item, blank);
done = 1;
}
if (args_has(args, 'J')) {
@@ -89,10 +88,9 @@ cmd_show_messages_exec(struct cmd *self, struct cmdq_item *item)
if (done)
return (CMD_RETURN_NORMAL);
- TAILQ_FOREACH(msg, &c->message_log, entry) {
+ TAILQ_FOREACH(msg, &tc->message_log, entry) {
tim = ctime(&msg->msg_time);
*strchr(tim, '\n') = '\0';
-
cmdq_print(item, "%s %s", tim, msg->msg);
}