AllCommands: simplify the tokenizer loop
This commit is contained in:
parent
3a28f456b1
commit
5837a63942
@ -384,25 +384,27 @@ command_process(Client &client, unsigned num, char *line)
|
||||
|
||||
/* now parse the arguments (quoted or unquoted) */
|
||||
|
||||
while (argc < COMMAND_ARGV_MAX &&
|
||||
(argv[argc] =
|
||||
tokenizer.NextParam(error)) != nullptr)
|
||||
++argc;
|
||||
|
||||
/* some error checks */
|
||||
|
||||
if (argc >= COMMAND_ARGV_MAX) {
|
||||
command_error(client, ACK_ERROR_ARG, "Too many arguments");
|
||||
while (true) {
|
||||
if (argc == COMMAND_ARGV_MAX) {
|
||||
command_error(client, ACK_ERROR_ARG,
|
||||
"Too many arguments");
|
||||
current_command = nullptr;
|
||||
return CommandResult::ERROR;
|
||||
}
|
||||
|
||||
if (!tokenizer.IsEnd()) {
|
||||
char *a = tokenizer.NextParam(error);
|
||||
if (a == nullptr) {
|
||||
if (tokenizer.IsEnd())
|
||||
break;
|
||||
|
||||
command_error(client, ACK_ERROR_ARG, "%s", error.GetMessage());
|
||||
current_command = nullptr;
|
||||
return CommandResult::ERROR;
|
||||
}
|
||||
|
||||
argv[argc++] = a;
|
||||
}
|
||||
|
||||
/* look up and invoke the command handler */
|
||||
|
||||
const struct command *cmd =
|
||||
|
Loading…
Reference in New Issue
Block a user