]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - cmd.c
properly handle comments when looking for final ; of a line
[xonotic/darkplaces.git] / cmd.c
diff --git a/cmd.c b/cmd.c
index 993faa3ae6e42262c77c9540f9bd633a78f60513..391b0c7b0a4eed5cfd4a169536d6f5e8179b2778 100644 (file)
--- a/cmd.c
+++ b/cmd.c
@@ -25,7 +25,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 // 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
-#define CMDBUFSIZE 131072
+// 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)
@@ -320,7 +321,7 @@ void Cbuf_Execute (void)
                                }
                                else
                                {
-                                       if(text[i] == '/' && text[i + 1] == '/')
+                                       if(text[i] == '/' && text[i + 1] == '/' && (i == 0 || ISWHITESPACE(text[i-1])))
                                                comment = true;
                                        if(text[i] == ';')
                                                break;  // don't break if inside a quoted string or comment
@@ -875,7 +876,7 @@ static const char *Cmd_GetCvarValue(const char *var, size_t varlen, cmdalias_t *
 /*
 Cmd_PreprocessString
 
-Preprocesses strings and replaces $*, $param#, $cvar accordingly
+Preprocesses strings and replaces $*, $param#, $cvar accordingly. Also strips comments.
 */
 static void Cmd_PreprocessString( const char *intext, char *outtext, unsigned maxoutlen, cmdalias_t *alias ) {
        const char *in;
@@ -982,9 +983,9 @@ static void Cmd_PreprocessString( const char *intext, char *outtext, unsigned ma
                                        --eat;
                                }
                        }
-               } else {
-                       outtext[outlen++] = *in++;
                }
+               else 
+                       outtext[outlen++] = *in++;
        }
        outtext[outlen] = 0;
 }
@@ -1139,11 +1140,14 @@ void Cmd_Init_Commands (void)
        Cmd_AddCommand ("stuffcmds",Cmd_StuffCmds_f, "execute commandline parameters (must be present in quake.rc script)");
        Cmd_AddCommand ("exec",Cmd_Exec_f, "execute a script file");
        Cmd_AddCommand ("echo",Cmd_Echo_f, "print a message to the console (useful in scripts)");
-       Cmd_AddCommand ("alias",Cmd_Alias_f, "create a script function (parameters are passed in as $1 through $9, and $* for all parameters)");
+       Cmd_AddCommand ("alias",Cmd_Alias_f, "create a script function (parameters are passed in as $X (being X a number), $* for all parameters, $X- for all parameters starting from $X). Without arguments show the list of all alias");
        Cmd_AddCommand ("cmd", Cmd_ForwardToServer, "send a console commandline to the server (used by some mods)");
        Cmd_AddCommand ("wait", Cmd_Wait_f, "make script execution wait for next rendered frame");
        Cmd_AddCommand ("set", Cvar_Set_f, "create or change the value of a console variable");
        Cmd_AddCommand ("seta", Cvar_SetA_f, "create or change the value of a console variable that will be saved to config.cfg");
+#ifdef FILLALLCVARSWITHRUBBISH
+       Cmd_AddCommand ("fillallcvarswithrubbish", Cvar_FillAll_f, "fill all cvars with a specified number of characters to provoke buffer overruns");
+#endif /* FILLALLCVARSWITHRUBBISH */
 
        // 2000-01-09 CmdList, CvarList commands By Matthias "Maddes" Buecher
        // Added/Modified by EvilTypeGuy eviltypeguy@qeradiant.com