diff options
-rw-r--r-- | cmd-find.c | 5 | ||||
-rw-r--r-- | cmd-string.c | 12 |
2 files changed, 9 insertions, 8 deletions
@@ -976,8 +976,11 @@ cmd_find_target(struct cmd_find_state *fs, struct cmdq_item *item, } else if (cmd_find_from_client(¤t, item->client) == 0) { fs->current = ¤t; log_debug("%s: current is from client", __func__); - } else + } else { + if (~flags & CMD_FIND_QUIET) + cmdq_error(item, "no current target"); goto error; + } if (!cmd_find_valid_state(fs->current)) fatalx("invalid current find state"); diff --git a/cmd-string.c b/cmd-string.c index 822d35b5..9c8f10c1 100644 --- a/cmd-string.c +++ b/cmd-string.c @@ -159,21 +159,19 @@ cmd_string_parse(const char *s, const char *file, u_int line, char **cause) char **argv; *cause = NULL; - if (cmd_string_split(s, &argc, &argv) != 0) - goto error; + if (cmd_string_split(s, &argc, &argv) != 0) { + xasprintf(cause, "invalid or unknown command: %s", s); + return (NULL); + } if (argc != 0) { cmdlist = cmd_list_parse(argc, argv, file, line, cause); if (cmdlist == NULL) { cmd_free_argv(argc, argv); - goto error; + return (NULL); } } cmd_free_argv(argc, argv); return (cmdlist); - -error: - xasprintf(cause, "invalid or unknown command: %s", s); - return (NULL); } static void |