a->next = cmd_alias;
cmd_alias = a;
}
- strcpy (a->name, s);
+ strlcpy (a->name, s, sizeof (a->name));
// copy the rest of the command line
cmd[0] = 0; // start out with a null string
c = Cmd_Argc();
for (i=2 ; i< c ; i++)
{
- strcat (cmd, Cmd_Argv(i));
+ strlcat (cmd, Cmd_Argv(i), sizeof (cmd));
if (i != c)
- strcat (cmd, " ");
+ strlcat (cmd, " ", sizeof (cmd));
}
- strcat (cmd, "\n");
+ strlcat (cmd, "\n", sizeof (cmd));
a->value = CopyString (cmd);
}
if (cmd_argc == 1)
cmd_args = text;
- if (!COM_ParseToken(&text, false))
+ if (!COM_ParseTokenConsole(&text))
return;
if (cmd_argc < MAX_ARGS)
*/
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);
}