X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=cvar.c;h=790bdd051220133bc264c2465cec29edbd6140b2;hb=fdc383f68458695b081a8418beb36d7097c6f455;hp=152a86aee4f52446aa95dd683d5b5484acfb4b09;hpb=ea7c24e1fb41f3b1df984ac0eed6881c9fde16f5;p=xonotic%2Fdarkplaces.git diff --git a/cvar.c b/cvar.c index 152a86ae..790bdd05 100644 --- a/cvar.c +++ b/cvar.c @@ -21,33 +21,57 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "quakedef.h" -cvar_t *cvar_vars; -char *cvar_null_string = ""; +cvar_t *cvar_vars = NULL; +char *cvar_null_string = ""; /* ============ Cvar_FindVar ============ */ -cvar_t *Cvar_FindVar (char *var_name) +cvar_t *Cvar_FindVar (const char *var_name) { - cvar_t *var; + cvar_t *var; - for (var=cvar_vars ; var ; var=var->next) + for (var = cvar_vars;var;var = var->next) if (!strcmp (var_name, var->name)) return var; return NULL; } +cvar_t *Cvar_FindVarAfter (const char *prev_var_name, int neededflags) +{ + cvar_t *var; + + if (*prev_var_name) + { + var = Cvar_FindVar (prev_var_name); + if (!var) + return NULL; + var = var->next; + } + else + var = cvar_vars; + + // search for the next cvar matching the needed flags + while (var) + { + if ((var->flags & neededflags) || !neededflags) + break; + var = var->next; + } + return var; +} + /* ============ Cvar_VariableValue ============ */ -float Cvar_VariableValue (char *var_name) +float Cvar_VariableValue (const char *var_name) { - cvar_t *var; + cvar_t *var; var = Cvar_FindVar (var_name); if (!var) @@ -61,7 +85,7 @@ float Cvar_VariableValue (char *var_name) Cvar_VariableString ============ */ -char *Cvar_VariableString (char *var_name) +const char *Cvar_VariableString (const char *var_name) { cvar_t *var; @@ -77,7 +101,7 @@ char *Cvar_VariableString (char *var_name) Cvar_CompleteVariable ============ */ -char *Cvar_CompleteVariable (char *partial) +const char *Cvar_CompleteVariable (const char *partial) { cvar_t *cvar; int len; @@ -104,8 +128,7 @@ char *Cvar_CompleteVariable (char *partial) Thanks to Fett erich@heintz.com */ -int -Cvar_CompleteCountPossible (char *partial) +int Cvar_CompleteCountPossible (const char *partial) { cvar_t *cvar; int len; @@ -134,17 +157,16 @@ Cvar_CompleteCountPossible (char *partial) Thanks to taniwha */ -char ** -Cvar_CompleteBuildList (char *partial) +const char **Cvar_CompleteBuildList (const char *partial) { - cvar_t *cvar; - int len = 0; - int bpos = 0; - int sizeofbuf = (Cvar_CompleteCountPossible (partial) + 1) * sizeof (char *); - char **buf; + const cvar_t *cvar; + int len = 0; + int bpos = 0; + int sizeofbuf = (Cvar_CompleteCountPossible (partial) + 1) * sizeof (const char *); + const char **buf; len = strlen(partial); - buf = Mem_Alloc(tempmempool, sizeofbuf + sizeof (char *)); + buf = Mem_Alloc(tempmempool, sizeofbuf + sizeof (const char *)); // Loop through the alias list and print all matches for (cvar = cvar_vars; cvar; cvar = cvar->next) if (!strncasecmp(partial, cvar->name, len)) @@ -159,7 +181,7 @@ Cvar_CompleteBuildList (char *partial) Cvar_Set ============ */ -void Cvar_SetQuick (cvar_t *var, char *value) +void Cvar_SetQuick (cvar_t *var, const char *value) { qboolean changed; @@ -191,7 +213,7 @@ void Cvar_SetQuick (cvar_t *var, char *value) } } -void Cvar_Set (char *var_name, char *value) +void Cvar_Set (const char *var_name, const char *value) { cvar_t *var; var = Cvar_FindVar (var_name); @@ -219,7 +241,7 @@ void Cvar_SetValueQuick (cvar_t *var, float value) Cvar_SetQuick (var, val); } -void Cvar_SetValue (char *var_name, float value) +void Cvar_SetValue (const char *var_name, float value) { char val[32]; @@ -301,13 +323,13 @@ Writes lines containing "set variable value" for all variables with the archive flag set to true. ============ */ -void Cvar_WriteVariables (QFile *f) +void Cvar_WriteVariables (qfile_t *f) { cvar_t *var; for (var = cvar_vars ; var ; var = var->next) if (var->flags & CVAR_SAVE) - Qprintf (f, "%s \"%s\"\n", var->name, var->string); + FS_Printf (f, "%s \"%s\"\n", var->name, var->string); } @@ -320,21 +342,24 @@ Cvar_List */ void Cvar_List_f (void) { - cvar_t *cvar; - char *partial; - int len; - int count; + cvar_t *cvar; + const char *partial; + int len, count; - if (Cmd_Argc() > 1) { + if (Cmd_Argc() > 1) + { partial = Cmd_Argv (1); len = strlen(partial); - } else { + } + else + { partial = NULL; len = 0; } count = 0; - for (cvar = cvar_vars; cvar; cvar = cvar->next) { + for (cvar = cvar_vars; cvar; cvar = cvar->next) + { if (partial && strncmp (partial,cvar->name,len)) continue;