summaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
authorHaru <haru@dotalux.com>2019-10-19 17:45:35 +0200
committerGitHub <noreply@github.com>2019-10-19 17:45:35 +0200
commitddd0e461fb8e451912a6aee90869023e2c2d8272 (patch)
tree4dc1d7ab1c36534420636ee0769b7650fcbe2272 /src/common
parent574e63d3e04e6b1cdb2d9d19fa164263ba5d5bf7 (diff)
parentf174b0c7067be290a00882e09746d8a51d46f9c0 (diff)
downloadhercules-ddd0e461fb8e451912a6aee90869023e2c2d8272.tar.gz
hercules-ddd0e461fb8e451912a6aee90869023e2c2d8272.tar.bz2
hercules-ddd0e461fb8e451912a6aee90869023e2c2d8272.tar.xz
hercules-ddd0e461fb8e451912a6aee90869023e2c2d8272.zip
Merge pull request #2563 from MishimaHaruna/cpcmds-fixes
Console command fixes
Diffstat (limited to 'src/common')
-rw-r--r--src/common/console.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/common/console.c b/src/common/console.c
index a990d86b3..0075ac2a1 100644
--- a/src/common/console.c
+++ b/src/common/console.c
@@ -322,6 +322,7 @@ static void console_parse_create(char *name, CParseFunc func)
nullpo_retv(name);
safestrncpy(sublist, name, CP_CMD_LENGTH * 5);
tok = strtok(sublist,":");
+ nullpo_retv(tok);
ARR_FIND(0, VECTOR_LENGTH(console->input->command_list), i, strcmpi(tok, VECTOR_INDEX(console->input->command_list, i)->cmd) == 0);
@@ -404,6 +405,10 @@ static void console_parse_sub(char *line)
nullpo_retv(line);
memcpy(bline, line, 200);
tok = strtok(line, " ");
+ if (tok == NULL) {
+ // Ignore empty commands
+ return;
+ }
ARR_FIND(0, VECTOR_LENGTH(console->input->command_list), i, strcmpi(tok, VECTOR_INDEX(console->input->command_list, i)->cmd) == 0);
if (i == VECTOR_LENGTH(console->input->command_list)) {
@@ -417,6 +422,12 @@ static void console_parse_sub(char *line)
if (cmd->type == CPET_FUNCTION) {
tok = strtok(NULL, "");
+ if (tok != NULL) {
+ while (tok[0] == ' ')
+ tok++;
+ if (tok[0] == '\0')
+ tok = NULL;
+ }
cmd->u.func(tok);
return;
}
@@ -444,6 +455,12 @@ static void console_parse_sub(char *line)
entry = VECTOR_INDEX(cmd->u.children, i);
if (entry->type == CPET_FUNCTION) {
tok = strtok(NULL, "");
+ if (tok != NULL) {
+ while (tok[0] == ' ')
+ tok++;
+ if (tok[0] == '\0')
+ tok = NULL;
+ }
entry->u.func(tok);
return;
}