From bb8457b166635bc8d069012bb33d94e44178bfdc Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Sun, 24 Mar 2013 09:27:19 +0000 Subject: 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. --- cmd.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'cmd.c') diff --git a/cmd.c b/cmd.c index 6ab1f430..6fe4d565 100644 --- a/cmd.c +++ b/cmd.c @@ -517,15 +517,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. */ @@ -537,7 +541,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); -- cgit