if (cmd_argc == 1)
cmd_args = text;
- if (!COM_ParseToken(&text, false))
+ if (!COM_ParseTokenConsole(&text))
return;
if (cmd_argc < MAX_ARGS)
return; // no tokens
}
-// check functions
- for (cmd=cmd_functions ; cmd ; cmd=cmd->next)
+// check functions (only after host_initialized)
+ if (host_initialized || !strcasecmp(cmd_argv[0], "exec"))
{
- if (!strcasecmp (cmd_argv[0],cmd->name))
+ for (cmd=cmd_functions ; cmd ; cmd=cmd->next)
{
- cmd->function ();
- cmd_tokenizebufferpos = oldpos;
- return;
+ if (!strcasecmp (cmd_argv[0],cmd->name))
+ {
+ cmd->function ();
+ cmd_tokenizebufferpos = oldpos;
+ return;
+ }
}
}
-// check alias
- for (a=cmd_alias ; a ; a=a->next)
+// check alias (only after host_initialized)
+ if (host_initialized)
{
- if (!strcasecmp (cmd_argv[0], a->name))
+ for (a=cmd_alias ; a ; a=a->next)
{
- Cbuf_InsertText (a->value);
- cmd_tokenizebufferpos = oldpos;
- return;
+ if (!strcasecmp (cmd_argv[0], a->name))
+ {
+ Cbuf_InsertText (a->value);
+ cmd_tokenizebufferpos = oldpos;
+ return;
+ }
}
}
-// check cvars
- if (!Cvar_Command ())
+// check cvars (always)
+ if (!Cvar_Command () && host_initialized)
Con_Printf ("Unknown command \"%s\"\n", Cmd_Argv(0));
cmd_tokenizebufferpos = oldpos;
*/
void Cmd_ForwardToServer (void)
{
+ char *s;
if (cls.state != ca_connected)
{
Con_Printf ("Can't \"%s\", not connected\n", Cmd_Argv(0));
if (cls.demoplayback)
return; // not really connected
- MSG_WriteByte (&cls.message, clc_stringcmd);
+ // LordHavoc: thanks to Fuh for bringing the pure evil of SZ_Print to my
+ // attention, it has been eradicated from here, its only (former) use in
+ // all of darkplaces.
if (strcasecmp(Cmd_Argv(0), "cmd") != 0)
- {
- SZ_Print (&cls.message, Cmd_Argv(0));
- SZ_Print (&cls.message, " ");
- }
- if (Cmd_Argc() > 1)
- SZ_Print (&cls.message, Cmd_Args());
+ s = va("%s %s", Cmd_Argv(0), Cmd_Argc() > 1 ? Cmd_Args() : "\n");
else
- SZ_Print (&cls.message, "\n");
+ s = va("%s", Cmd_Argc() > 1 ? Cmd_Args() : "\n");
+ MSG_WriteByte(&cls.message, clc_stringcmd);
+ SZ_Write(&cls.message, s, strlen(s) + 1);
}