"share the software ..." put in an extern for com_cmdline
qargs.c:
	no longer include the program name (argv[0]) in com_cmdline
cmd.c:
	remove redundant code from Cmd_StuffCmds_f and use com_cmdline in it's place.
This commit is contained in:
Bill Currie 2000-04-18 09:30:45 +00:00
parent 3a8f38c217
commit 499c3c20bd
3 changed files with 24 additions and 34 deletions

View File

@ -29,6 +29,7 @@
*/
#include <common.h>
#include <qargs.h>
#include <cmd.h>
#include <console.h>
#include <cvar.h>
@ -230,57 +231,42 @@ void Cmd_StuffCmds_f (void)
{
int i, j;
int s;
char *text, *build, c;
char *build, c;
// build the combined string to parse from
s = 0;
for (i=1 ; i<com_argc ; i++)
{
if (!com_argv[i])
continue; // NEXTSTEP nulls out -NXHost
s += Q_strlen (com_argv[i]) + 1;
}
s = strlen (com_cmdline);
if (!s)
return;
text = Z_Malloc (s+1);
text[0] = 0;
for (i=1 ; i<com_argc ; i++)
{
if (!com_argv[i])
continue; // NEXTSTEP nulls out -NXHost
Q_strcat (text,com_argv[i]);
if (i != com_argc-1)
Q_strcat (text, " ");
}
// pull out the commands
build = Z_Malloc (s+1);
build[0] = 0;
for (i=0 ; i<s-1 ; i++)
{
if (text[i] == '+')
if (com_cmdline[i] == '+')
{
i++;
for (j=i ; (text[j] != '+') && (text[j] != '-') && (text[j] != 0) ; j++)
for (j=i ; ((com_cmdline[j] != '+')
&& (com_cmdline[j] != '-')
&& (com_cmdline[j] != 0)) ; j++)
;
c = text[j];
text[j] = 0;
c = com_cmdline[j];
com_cmdline[j] = 0;
Q_strcat (build, text+i);
Q_strcat (build, com_cmdline+i);
Q_strcat (build, "\n");
text[j] = c;
com_cmdline[j] = c;
i = j-1;
}
}
//Con_Printf("[\n%s]\n",build);
if (build[0])
Cbuf_InsertText (build);
Z_Free (text);
Z_Free (build);
}

View File

@ -100,18 +100,21 @@ void COM_InitArgv (int argc, char **argv)
largv[com_argc] = argv[com_argc];
if ((argv[com_argc]) && !Q_strcmp ("-safe", argv[com_argc]))
safe = true;
len += strlen (argv[com_argc]) + 1;
if (com_argc)
len += strlen (argv[com_argc]) + 1;
}
com_cmdline = (char*)malloc (len+1); // need strlen(com_cmdline)+2
com_cmdline[0] = 0;
for (i=0; i < argc; i++)
{
strncat (com_cmdline, argv[i], len);
assert(len - strlen(com_cmdline) > 0);
strcat (com_cmdline, " ");
if (len) {
for (i=1; i < argc; i++)
{
strncat (com_cmdline, argv[i], len);
assert(len - strlen(com_cmdline) > 0);
strcat (com_cmdline, " ");
}
com_cmdline[len - 1] = '\0';
}
com_cmdline[len - 1] = '\0';
if (safe)
{

View File

@ -35,6 +35,7 @@
extern int com_argc;
extern char **com_argv;
extern char *com_cmdline;
int COM_CheckParm (char *parm);
void COM_AddParm (char *parm);