#include "quakedef.h"
-#define MAX_ALIAS_NAME 32
-// this is the largest script file that can be executed in one step
-// LordHavoc: inreased this from 8192 to 32768
-// div0: increased this from 32k to 128k
-// div0: increased this from 128k to 640k which ought to be enough for anyone
-#define CMDBUFSIZE 655360
-// maximum number of parameters to a command
-#define MAX_ARGS 80
-// maximum tokenizable commandline length (counting NUL terminations)
-#define CMD_TOKENIZELENGTH (MAX_INPUTLINE + MAX_ARGS)
-
typedef struct cmdalias_s
{
struct cmdalias_s *next;
static void Cmd_Exec_f (void)
{
char *f;
+ const char *filename;
if (Cmd_Argc () != 2)
{
return;
}
- f = (char *)FS_LoadFile (Cmd_Argv(1), tempmempool, false, NULL);
+ filename = Cmd_Argv(1);
+ if (!strcmp(filename, "config.cfg"))
+ filename = CONFIGFILENAME;
+
+ f = (char *)FS_LoadFile (filename, tempmempool, false, NULL);
if (!f)
{
- Con_Printf("couldn't exec %s\n",Cmd_Argv(1));
+ Con_Printf("couldn't exec %s\n",filename);
return;
}
- Con_Printf("execing %s\n",Cmd_Argv(1));
+ Con_Printf("execing %s\n",filename);
// if executing default.cfg for the first time, lock the cvar defaults
// it may seem backwards to insert this text BEFORE the default.cfg
// but Cbuf_InsertText inserts before, so this actually ends up after it.
- if (!strcmp(Cmd_Argv(1), "default.cfg"))
+ if (strlen(filename) >= 11 && !strcmp(filename + strlen(filename) - 11, "default.cfg"))
Cbuf_InsertText("\ncvar_lockdefaults\n");
// insert newline after the text to make sure the last line is terminated (some text editors omit the trailing newline)
*is_multiple = true;
return Cmd_Args();
}
+ else if(!strcmp(varname, "#"))
+ {
+ return va("%d", Cmd_Argc());
+ }
else if(varname[strlen(varname) - 1] == '-')
{
argno = strtol(varname, &endptr, 10);
eat = varlen + 1;
}
} else {
- varlen = strspn(in, "*0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-");
+ varlen = strspn(in, "#*0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-");
val = Cmd_GetCvarValue(in, varlen, alias);
eat = varlen;
}
Con_Printf("Command \"%s\" can not be executed\n", Cmd_Argv(0));
found = true;
goto command_found;
- break;
case src_client:
if (cmd->clientfunction)
{