]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - cmd.c
randomized loadingscreen pic (cvar: scr_loadingscreen_count, when 2 or above, randomi...
[xonotic/darkplaces.git] / cmd.c
diff --git a/cmd.c b/cmd.c
index db6acdb99072cd68c78ed7bbc4db2e98bed61583..47e40a4faa343c6b2faa2def596e1ffa13496cb3 100644 (file)
--- a/cmd.c
+++ b/cmd.c
@@ -454,6 +454,7 @@ Cmd_Exec_f
 static void Cmd_Exec_f (void)
 {
        char *f;
+       const char *filename;
 
        if (Cmd_Argc () != 2)
        {
@@ -461,18 +462,22 @@ static void Cmd_Exec_f (void)
                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)
@@ -743,6 +748,10 @@ static const char *Cmd_GetDirectCvarValue(const char *varname, cmdalias_t *alias
                                *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);
@@ -992,7 +1001,7 @@ static void Cmd_PreprocessString( const char *intext, char *outtext, unsigned ma
                                        eat = varlen + 1;
                                }
                        } else {
-                               varlen = strspn(in, "*0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-");
+                               varlen = strspn(in, "#*0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-");
                                val = Cmd_GetCvarValue(in, varlen, alias);
                                eat = varlen;
                        }
@@ -1629,7 +1638,6 @@ void Cmd_ExecuteString (const char *text, cmd_source_t src)
                                        Con_Printf("Command \"%s\" can not be executed\n", Cmd_Argv(0));
                                found = true;
                                goto command_found;
-                               break;
                        case src_client:
                                if (cmd->clientfunction)
                                {