remove strtok_r function references (#174)

This commit is contained in:
Marcin K Szczodrak
2016-06-17 20:23:31 -07:00
committed by Jonathan Hui
parent c6c2a2ad48
commit 8298a0e5fe
+14 -6
View File
@@ -1079,22 +1079,30 @@ exit:
void Interpreter::ProcessLine(char *aBuf, uint16_t aBufLength, Server &aServer)
{
char *argv[kMaxArgs];
int argc = 0;
char *cmd;
int argc;
char *last;
sServer = &aServer;
VerifyOrExit((cmd = strtok_r(aBuf, " ", &last)) != NULL, ;);
VerifyOrExit(aBuf != NULL, ;);
for (argc = 0; argc < kMaxArgs; argc++)
for (; *aBuf == ' '; aBuf++, aBufLength--);
for (cmd = aBuf + 1; (cmd < aBuf + aBufLength) && (cmd != NULL); ++cmd)
{
if ((argv[argc] = strtok_r(NULL, " ", &last)) == NULL)
if (*cmd == ' ' || *cmd == '\r' || *cmd == '\n')
{
break;
*cmd = '\0';
}
if (*(cmd - 1) == '\0' && *cmd != ' ')
{
argv[argc++] = cmd;
}
}
cmd = aBuf;
for (unsigned int i = 0; i < sizeof(sCommands) / sizeof(sCommands[0]); i++)
{
if (strcmp(cmd, sCommands[i].mName) == 0)