Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2009-10-04 09:12:25 +0000
committerStijn Buys <ingar@osirion.org>2009-10-04 09:12:25 +0000
commit9e6f1cc494a329d32d0d8f0ca0acd563b3acaf7f (patch)
tree96897c0ffe4a6027261c7c0a29c283af595266f5 /src/core/cvar.cc
parent0362ba4c084e8bd22f476ea6086bbc47323175bf (diff)
minor core cleanups
Diffstat (limited to 'src/core/cvar.cc')
-rw-r--r--src/core/cvar.cc40
1 files changed, 26 insertions, 14 deletions
diff --git a/src/core/cvar.cc b/src/core/cvar.cc
index 6b4302d..f043028 100644
--- a/src/core/cvar.cc
+++ b/src/core/cvar.cc
@@ -47,28 +47,33 @@ void Cvar::set_info(const char* info)
cvar_info.assign(info);
}
-Cvar & Cvar::operator=(const std::string& other)
+void Cvar::assign(const std::string& other)
{
cvar_str = other;
std::stringstream s(cvar_str);
if (!(s >> cvar_value))
cvar_value = cvar_str.size();
- return (*this);
}
-Cvar & Cvar::operator=(const char* other)
+void Cvar::assign(const char* other)
{
- std::string value(other);
- return (this->operator=(value));
+ if (other) {
+ cvar_str.assign(other);
+ std::stringstream s(cvar_str);
+ if (!(s >> cvar_value))
+ cvar_value = cvar_str.size();
+ } else {
+ cvar_str.clear();
+ cvar_value = 0;
+ }
}
-Cvar & Cvar::operator=(const float other)
+void Cvar::assign(const float other)
{
std::stringstream s;
s << other;
s >> cvar_str;
cvar_value = other;
- return (*this);
}
Cvar* Cvar::get(const char* name, const char* value, const unsigned int flags)
@@ -76,8 +81,8 @@ Cvar* Cvar::get(const char* name, const char* value, const unsigned int flags)
Cvar *c = find(name);
if (!c) {
c = new Cvar(name, flags);
+ c->assign(value);
cvar_registry[c->name()] = c;
- (*c) = value;
}
c->cvar_flags |= flags;
return c;
@@ -88,8 +93,8 @@ Cvar* Cvar::get(const char* name, const float value, const unsigned int flags)
Cvar *c = find(name);
if (!c) {
c = new Cvar(name, flags);
+ c->assign(value);
cvar_registry[c->name()] = c;
- (*c) = value;
}
c->cvar_flags |= flags;
return c;
@@ -102,7 +107,7 @@ Cvar* Cvar::set(const char* name, const char* value, const unsigned int flags)
c = new Cvar(name, flags);
cvar_registry[c->name()] = c;
}
- (*c) = value;
+ c->assign(value);
c->cvar_flags = flags;
//con_debug << "set " << name << " " << cvar->str() << std::endl;
@@ -116,7 +121,7 @@ Cvar* Cvar::set(const char* name, const float value, const unsigned int flags)
c = new Cvar(name, flags);
cvar_registry[c->name()] = c;
}
- (*c) = value;
+ c->assign(value);
c->cvar_flags = flags;
//con_debug << "set " << name << " " << cvar->str() << std::endl;
@@ -135,7 +140,11 @@ void Cvar::unset(const std::string& name)
void Cvar::unset(const char* name)
{
- unset(std::string(name));
+ if (!name)
+ return;
+
+ std::string namestr(name);
+ unset(namestr);
}
Cvar *Cvar::find(const std::string& name)
@@ -149,8 +158,11 @@ Cvar *Cvar::find(const std::string& name)
Cvar *Cvar::find(const char* name)
{
- std::string s(name);
- return(find(s));
+ if (!name)
+ return 0;
+
+ std::string namestr(name);
+ return(find(namestr));
}
void Cvar::list()