aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmd-display-message.c2
-rw-r--r--cmd.c15
-rw-r--r--tmux.h1
3 files changed, 12 insertions, 6 deletions
diff --git a/cmd-display-message.c b/cmd-display-message.c
index 201f8b75..ddc55846 100644
--- a/cmd-display-message.c
+++ b/cmd-display-message.c
@@ -39,7 +39,7 @@ const struct cmd_entry cmd_display_message_entry = {
"c:pt:F:", 0, 1,
"[-p] [-c target-client] [-F format] " CMD_TARGET_PANE_USAGE
" [message]",
- CMD_CLIENT_C|CMD_PANE_T,
+ CMD_CLIENT_C|CMD_PANE_T|CMD_CLIENT_CANFAIL,
cmd_display_message_exec
};
diff --git a/cmd.c b/cmd.c
index 789bcefb..93bab204 100644
--- a/cmd.c
+++ b/cmd.c
@@ -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:
diff --git a/tmux.h b/tmux.h
index 5724b536..8b26431d 100644
--- a/tmux.h
+++ b/tmux.h
@@ -1417,6 +1417,7 @@ struct cmd_entry {
#define CMD_PANE_MARKED_T 0x10000
#define CMD_WINDOW_MARKED_T 0x20000
#define CMD_WINDOW_MARKED_S 0x40000
+#define CMD_CLIENT_CANFAIL 0x80000
int flags;
enum cmd_retval (*exec)(struct cmd *, struct cmd_q *);