diff options
Diffstat (limited to 'usr.bin/tmux/cmd.c')
| -rw-r--r-- | usr.bin/tmux/cmd.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/usr.bin/tmux/cmd.c b/usr.bin/tmux/cmd.c index 2d204fa5dc2..52750ea66b8 100644 --- a/usr.bin/tmux/cmd.c +++ b/usr.bin/tmux/cmd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd.c,v 1.114 2015/12/13 18:27:47 nicm Exp $ */ +/* $OpenBSD: cmd.c,v 1.115 2015/12/13 18:31:47 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -585,7 +585,7 @@ cmd_prepare_state(struct cmd *cmd, struct cmd_q *cmdq) struct cmd_state *state = &cmdq->state; struct args *args = cmd->args; char *tmp; - int error; + int error, quiet; tmp = cmd_print(cmd); log_debug("preparing state for: %s (client %p)", tmp, cmdq->client); @@ -594,6 +594,11 @@ cmd_prepare_state(struct cmd *cmd, struct cmd_q *cmdq) /* Start with an empty state. */ cmd_clear_state(state); + /* No error messages if can fail. */ + quiet = 0; + if (cmd->entry->flags & CMD_CLIENT_CANFAIL) + quiet = 1; + /* * If the command wants a client and provides -c or -t, use it. If not, * try the base command instead via cmd_get_state_client. No client is @@ -604,13 +609,13 @@ cmd_prepare_state(struct cmd *cmd, struct cmd_q *cmdq) state->c = cmd_find_client(cmdq, NULL, 1); break; case CMD_CLIENT_C: - state->c = cmd_find_client(cmdq, args_get(args, 'c'), 0); - if (state->c == NULL) + state->c = cmd_find_client(cmdq, args_get(args, 'c'), quiet); + if (!quiet && state->c == NULL) return (-1); break; case CMD_CLIENT_T: - state->c = cmd_find_client(cmdq, args_get(args, 't'), 0); - if (state->c == NULL) + state->c = cmd_find_client(cmdq, args_get(args, 't'), quiet); + if (!quiet && state->c == NULL) return (-1); break; default: |
