aboutsummaryrefslogtreecommitdiff
path: root/cmd.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2013-02-22 23:04:53 +0000
committerNicholas Marriott <nicholas.marriott@gmail.com>2013-02-22 23:04:53 +0000
commit3a2e9d805a80e683078994d86a5390bf5deed9fc (patch)
tree3800077b20ff9c9f7b34c8dd21c20f70209ca9d3 /cmd.c
parent911ef4e69a483d11045551628971761e8d1ecc22 (diff)
downloadrtmux-3a2e9d805a80e683078994d86a5390bf5deed9fc.tar.gz
rtmux-3a2e9d805a80e683078994d86a5390bf5deed9fc.tar.bz2
rtmux-3a2e9d805a80e683078994d86a5390bf5deed9fc.zip
Fix error reporting for client commands by adding a flag to cmd_find_client to
tell it whether or not to show errors, sometimes it's needed and sometimes not.
Diffstat (limited to 'cmd.c')
-rw-r--r--cmd.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/cmd.c b/cmd.c
index 5c02314f..461d39f6 100644
--- a/cmd.c
+++ b/cmd.c
@@ -516,15 +516,19 @@ cmd_choose_client(struct clients *cc)
/* Find the target client or report an error and return NULL. */
struct client *
-cmd_find_client(struct cmd_ctx *ctx, const char *arg)
+cmd_find_client(struct cmd_ctx *ctx, const char *arg, int quiet)
{
struct client *c;
char *tmparg;
size_t arglen;
/* A NULL argument means the current client. */
- if (arg == NULL)
- return (cmd_current_client(ctx));
+ if (arg == NULL) {
+ c = cmd_current_client(ctx);
+ if (c == NULL && !quiet)
+ ctx->error(ctx, "no clients");
+ return (c);
+ }
tmparg = xstrdup(arg);
/* Trim a single trailing colon if any. */
@@ -536,7 +540,7 @@ cmd_find_client(struct cmd_ctx *ctx, const char *arg)
c = cmd_lookup_client(tmparg);
/* If no client found, report an error. */
- if (c == NULL)
+ if (c == NULL && !quiet)
ctx->error(ctx, "client not found: %s", tmparg);
free(tmparg);