From 7cf1bf5891f301205f5a2445faebd377a50d4645 Mon Sep 17 00:00:00 2001 From: thilo Date: Mon, 19 Oct 2009 16:52:16 +0000 Subject: - Applied patch from /dev/humancontroller to set cvar_modifiedFlags from Cvar_Set_f (#3636) - Exchanged ugly code with Cmd_ArgsFrom() git-svn-id: svn://svn.icculus.org/quake3/trunk@1684 edf5b092-35ff-0310-97b2-ce42778d08ea --- code/qcommon/cvar.c | 43 ++++++++++++++++++------------------------- 1 file changed, 18 insertions(+), 25 deletions(-) (limited to 'code/qcommon') diff --git a/code/qcommon/cvar.c b/code/qcommon/cvar.c index d4809ae..a37de12 100644 --- a/code/qcommon/cvar.c +++ b/code/qcommon/cvar.c @@ -739,12 +739,12 @@ weren't declared in C code. ============ */ void Cvar_Set_f( void ) { - int i, c, l, len; - char cmd[5], combined[MAX_STRING_TOKENS]; - cvar_t *v; + int c; + char *cmd; + cvar_t *v; c = Cmd_Argc(); - Q_strncpyz( cmd, Cmd_Argv(0), sizeof( cmd ) ); + cmd = Cmd_Argv(0); if ( c < 2 ) { Com_Printf ("usage: %s \n", cmd); @@ -755,35 +755,28 @@ void Cvar_Set_f( void ) { return; } - combined[0] = 0; - l = 0; - for ( i = 2 ; i < c ; i++ ) { - len = strlen ( Cmd_Argv( i ) + 1 ); - if ( l + len >= MAX_STRING_TOKENS - 2 ) { - break; - } - strcat( combined, Cmd_Argv( i ) ); - if ( i != c-1 ) { - strcat( combined, " " ); - } - l += len; - } - v = Cvar_Set2 (Cmd_Argv(1), combined, qfalse); + v = Cvar_Set2 (Cmd_Argv(1), Cmd_ArgsFrom(2), qfalse); if( !v ) { return; } switch( cmd[3] ) { - default: - case '\0': + case 'a': + if( !( v->flags & CVAR_ARCHIVE ) ) { + v->flags |= CVAR_ARCHIVE; + cvar_modifiedFlags |= CVAR_ARCHIVE; + } break; case 'u': - v->flags |= CVAR_USERINFO; + if( !( v->flags & CVAR_USERINFO ) ) { + v->flags |= CVAR_USERINFO; + cvar_modifiedFlags |= CVAR_USERINFO; + } break; case 's': - v->flags |= CVAR_SERVERINFO; - break; - case 'a': - v->flags |= CVAR_ARCHIVE; + if( !( v->flags & CVAR_SERVERINFO ) ) { + v->flags |= CVAR_SERVERINFO; + cvar_modifiedFlags |= CVAR_SERVERINFO; + } break; } } -- cgit v1.2.3