]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - cmd.c
got rid of buildnumber.c and buildnum program, now uses builddate.c (touched each...
[xonotic/darkplaces.git] / cmd.c
diff --git a/cmd.c b/cmd.c
index 293155d62de244a1eb3ffefcd2fc500b2cabc065..a9da1b0d38fa0fe3c5cbeb024e4d03d0fdcf52af 100644 (file)
--- a/cmd.c
+++ b/cmd.c
@@ -510,6 +510,11 @@ char       *Cmd_Args (void)
 }
 
 
+#if 1
+#define CMD_TOKENIZELENGTH 4096
+char cmd_tokenizebuffer[CMD_TOKENIZELENGTH];
+#endif
+
 /*
 ============
 Cmd_TokenizeString
@@ -519,11 +524,16 @@ Parses the given string into command line tokens.
 */
 static void Cmd_TokenizeString (char *text)
 {
-       int             i;
-
+       int l;
+#ifdef CMD_TOKENIZELENGTH
+       int pos;
+       pos = 0;
+#else
+       int i;
 // clear the args from the last string
        for (i=0 ; i<cmd_argc ; i++)
                Z_Free (cmd_argv[i]);
+#endif
 
        cmd_argc = 0;
        cmd_args = NULL;
@@ -554,7 +564,15 @@ static void Cmd_TokenizeString (char *text)
 
                if (cmd_argc < MAX_ARGS)
                {
-                       cmd_argv[cmd_argc] = Z_Malloc (strlen(com_token)+1);
+                       l = strlen(com_token) + 1;
+#ifdef CMD_TOKENIZELENGTH
+                       if (pos + l > CMD_TOKENIZELENGTH)
+                               Sys_Error("Cmd_TokenizeString: ran out of %i character buffer space for command arguements\n", CMD_TOKENIZELENGTH);
+                       cmd_argv[cmd_argc] = cmd_tokenizebuffer + pos;
+                       pos += l;
+#else
+                       cmd_argv[cmd_argc] = Z_Malloc (l);
+#endif
                        strcpy (cmd_argv[cmd_argc], com_token);
                        cmd_argc++;
                }