mirror of
https://github.com/tmux/tmux.git
synced 2025-09-02 13:33:27 +00:00
Merge cmd_list_parse into cmd-parse.y so it can use the new alias
processing code.
This commit is contained in:
@ -1775,9 +1775,9 @@ server_client_dispatch_command(struct client *c, struct imsg *imsg)
|
||||
struct msg_command_data data;
|
||||
char *buf;
|
||||
size_t len;
|
||||
struct cmd_list *cmdlist = NULL;
|
||||
int argc;
|
||||
char **argv, *cause;
|
||||
struct cmd_parse_result *pr;
|
||||
|
||||
if (c->flags & CLIENT_EXIT)
|
||||
return;
|
||||
@ -1803,24 +1803,31 @@ server_client_dispatch_command(struct client *c, struct imsg *imsg)
|
||||
*argv = xstrdup("new-session");
|
||||
}
|
||||
|
||||
if ((cmdlist = cmd_list_parse(argc, argv, NULL, 0, &cause)) == NULL) {
|
||||
cmd_free_argv(argc, argv);
|
||||
pr = cmd_parse_from_arguments(argc, argv, NULL);
|
||||
switch (pr->status) {
|
||||
case CMD_PARSE_EMPTY:
|
||||
cause = xstrdup("empty command");
|
||||
goto error;
|
||||
case CMD_PARSE_ERROR:
|
||||
cause = pr->error;
|
||||
goto error;
|
||||
case CMD_PARSE_SUCCESS:
|
||||
break;
|
||||
}
|
||||
cmd_free_argv(argc, argv);
|
||||
|
||||
cmdq_append(c, cmdq_get_command(cmdlist, NULL, NULL, 0));
|
||||
cmdq_append(c, cmdq_get_command(pr->cmdlist, NULL, NULL, 0));
|
||||
cmdq_append(c, cmdq_get_callback(server_client_command_done, NULL));
|
||||
cmd_list_free(cmdlist);
|
||||
|
||||
cmd_list_free(pr->cmdlist);
|
||||
return;
|
||||
|
||||
error:
|
||||
cmd_free_argv(argc, argv);
|
||||
|
||||
cmdq_append(c, cmdq_get_error(cause));
|
||||
free(cause);
|
||||
|
||||
if (cmdlist != NULL)
|
||||
cmd_list_free(cmdlist);
|
||||
|
||||
c->flags |= CLIENT_EXIT;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user