Commit 5837a639 authored by Max Kellermann's avatar Max Kellermann

AllCommands: simplify the tokenizer loop

parent 3a28f456
...@@ -384,23 +384,25 @@ command_process(Client &client, unsigned num, char *line) ...@@ -384,23 +384,25 @@ command_process(Client &client, unsigned num, char *line)
/* now parse the arguments (quoted or unquoted) */ /* now parse the arguments (quoted or unquoted) */
while (argc < COMMAND_ARGV_MAX && while (true) {
(argv[argc] = if (argc == COMMAND_ARGV_MAX) {
tokenizer.NextParam(error)) != nullptr) command_error(client, ACK_ERROR_ARG,
++argc; "Too many arguments");
current_command = nullptr;
/* some error checks */ return CommandResult::ERROR;
}
if (argc >= COMMAND_ARGV_MAX) {
command_error(client, ACK_ERROR_ARG, "Too many arguments"); char *a = tokenizer.NextParam(error);
current_command = nullptr; if (a == nullptr) {
return CommandResult::ERROR; if (tokenizer.IsEnd())
} break;
if (!tokenizer.IsEnd()) { command_error(client, ACK_ERROR_ARG, "%s", error.GetMessage());
command_error(client, ACK_ERROR_ARG, "%s", error.GetMessage()); current_command = nullptr;
current_command = nullptr; return CommandResult::ERROR;
return CommandResult::ERROR; }
argv[argc++] = a;
} }
/* look up and invoke the command handler */ /* look up and invoke the command handler */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment