From a7291943f775fc9d458c2fd65e3a8e9b18fe83f9 Mon Sep 17 00:00:00 2001 From: Bill Currie Date: Tue, 5 Jul 2011 20:50:02 +0900 Subject: [PATCH] Fix up Cvar_MakeAlias's error checking. --- include/QF/cvar.h | 2 +- libs/util/cvar.c | 17 ++++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/include/QF/cvar.h b/include/QF/cvar.h index 8ed1a4afb..97ac96109 100644 --- a/include/QF/cvar.h +++ b/include/QF/cvar.h @@ -83,7 +83,7 @@ cvar_t *Cvar_Get (const char *name, const char *value, int cvarflags, cvar_t *Cvar_FindAlias (const char *alias_name); -void Cvar_MakeAlias (const char *name, cvar_t *cvar); +cvar_t *Cvar_MakeAlias (const char *name, cvar_t *cvar); // equivelants to " " typed at the console void Cvar_Set (cvar_t *var, const char *value); diff --git a/libs/util/cvar.c b/libs/util/cvar.c index 63a18b0d7..9bcccdb7a 100644 --- a/libs/util/cvar.c +++ b/libs/util/cvar.c @@ -82,21 +82,27 @@ Cvar_FindAlias (const char *alias_name) return 0; } -void +cvar_t * Cvar_MakeAlias (const char *name, cvar_t *cvar) { cvar_alias_t *alias; cvar_t *var; if (Cmd_Exists (name)) { - Sys_Printf ("CAlias_Get: %s is a command\n", name); - return; + Sys_Printf ("Cvar_MakeAlias: %s is a command\n", name); + return 0; } if (Cvar_FindVar (name)) { - Sys_Printf ("CAlias_Get: tried to alias used cvar name %s\n", name); - return; + Sys_Printf ("Cvar_MakeAlias: %s is a cvar\n", + name); + return 0; } var = Cvar_FindAlias (name); + if (var && var != cvar) { + Sys_Printf ("Cvar_MakeAlias: %s is an alias to %s\n", + name, var->name); + return 0; + } if (!var) { alias = (cvar_alias_t *) calloc (1, sizeof (cvar_alias_t)); @@ -106,6 +112,7 @@ Cvar_MakeAlias (const char *name, cvar_t *cvar) alias->cvar = cvar; Hash_Add (calias_hash, alias); } + return cvar; } VISIBLE float