}
+#define CMD_TOKENIZELENGTH 4096
+char cmd_tokenizebuffer[CMD_TOKENIZELENGTH];
+
/*
============
Cmd_TokenizeString
*/
static void Cmd_TokenizeString (char *text)
{
- int i;
-
-// clear the args from the last string
- for (i=0 ; i<cmd_argc ; i++)
- Z_Free (cmd_argv[i]);
+ int l;
+ int pos;
+ pos = 0;
cmd_argc = 0;
cmd_args = NULL;
if (cmd_argc < MAX_ARGS)
{
- cmd_argv[cmd_argc] = Z_Malloc (strlen(com_token)+1);
+ l = strlen(com_token) + 1;
+ if (pos + l > CMD_TOKENIZELENGTH)
+ Sys_Error("Cmd_TokenizeString: ran out of %i character buffer space for command arguements\n", CMD_TOKENIZELENGTH);
+ cmd_argv[cmd_argc] = cmd_tokenizebuffer + pos;
+ pos += l;
strcpy (cmd_argv[cmd_argc], com_token);
cmd_argc++;
}
{
cmd_function_t *cmd;
-// if (host_initialized) // because hunk allocation would get stomped
-// Sys_Error ("Cmd_AddCommand after host_initialized");
-
// fail if the command is a variable name
if (Cvar_VariableString(cmd_name)[0])
{
}
-
/*
============
Cmd_CompleteCommand