]> git.xonotic.org Git - xonotic/darkplaces.git/commitdiff
cvar saving robustness
authordivverent <divverent@d7cf8633-e32d-0410-b094-e92efae38249>
Sun, 18 Sep 2011 05:46:17 +0000 (05:46 +0000)
committerdivverent <divverent@d7cf8633-e32d-0410-b094-e92efae38249>
Sun, 18 Sep 2011 05:46:17 +0000 (05:46 +0000)
Don't match cvars that are equal to their default but not locked if they are
engine cvars. Fixes config value reverting on "invalid basedir".

git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@11362 d7cf8633-e32d-0410-b094-e92efae38249

cvar.c

diff --git a/cvar.c b/cvar.c
index 3dee0406d0351cc2ac9c39707dbca97ffb91e982..f7cc77bbcade32d5de1b3e17b0efb36aaf546cd9 100644 (file)
--- a/cvar.c
+++ b/cvar.c
@@ -830,7 +830,7 @@ void Cvar_WriteVariables (qfile_t *f)
 
        // don't save cvars that match their default value
        for (var = cvar_vars ; var ; var = var->next)
-               if ((var->flags & CVAR_SAVE) && (strcmp(var->string, var->defstring) || !(var->flags & CVAR_DEFAULTSET)))
+               if ((var->flags & CVAR_SAVE) && (strcmp(var->string, var->defstring) || ((var->flags & CVAR_ALLOCATED) && !(var->flags & CVAR_DEFAULTSET))))
                {
                        Cmd_QuoteString(buf1, sizeof(buf1), var->name, "\"\\$", false);
                        Cmd_QuoteString(buf2, sizeof(buf2), var->string, "\"\\$", false);