From 1edc1a325caccad3662a9af382d94d9031bfe407 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Thu, 22 May 2003 19:35:57 +0000 Subject: [PATCH] Const fixes. Add unsigned values. Remove old, outdated, redundant comments. Simplify. --- stepmania/src/IniFile.cpp | 61 +++++++++++++++++---------------------- stepmania/src/IniFile.h | 20 ++++++------- 2 files changed, 37 insertions(+), 44 deletions(-) diff --git a/stepmania/src/IniFile.cpp b/stepmania/src/IniFile.cpp index 9465bc0a82..57e3dfc483 100644 --- a/stepmania/src/IniFile.cpp +++ b/stepmania/src/IniFile.cpp @@ -46,9 +46,7 @@ bool IniFile::ReadFile() return 0; } - CString keyname, valuename, value; - CString temp; - CString line; + CString line, keyname; while (getline(file, line)) { if(line.size() >= 3 && @@ -71,17 +69,15 @@ bool IniFile::ReadFile() if (line[0] == '[' && line[line.GetLength()-1] == ']') //if a section heading { - keyname = line; - TrimLeft(keyname, "["); - TrimRight(keyname, "]"); + keyname = line.substr(1, line.size()-2); } else //if a value { int iEqualIndex = line.Find("="); if( iEqualIndex != -1 ) { - valuename = line.Left(iEqualIndex); - value = line.Right(line.GetLength()-valuename.GetLength()-1); + CString valuename = line.Left(iEqualIndex); + CString value = line.Right(line.GetLength()-valuename.GetLength()-1); SetValue(keyname,valuename,value); } } @@ -135,8 +131,7 @@ int IniFile::GetNumValues(const CString &keyname) const } // gets value of [keyname] valuename = -// overloaded to return CString, int, and double -bool IniFile::GetValue(const CString &keyname, const CString &valuename, CString& value) +bool IniFile::GetValue(const CString &keyname, const CString &valuename, CString& value) const { keymap::const_iterator k = keys.find(keyname); if (k == keys.end()) @@ -158,36 +153,39 @@ bool IniFile::GetValue(const CString &keyname, const CString &valuename, CString } // gets value of [keyname] valuename = -// overloaded to return CString, int, and double -bool IniFile::GetValueI(const CString &keyname, const CString &valuename, int& value) +bool IniFile::GetValueI(const CString &keyname, const CString &valuename, int& value) const { CString sValue; - bool bSuccess = GetValue(keyname,valuename,sValue); - if( !bSuccess ) + if( !GetValue(keyname,valuename,sValue) ) return false; - value = atoi(sValue); + sscanf( sValue.c_str(), "%d", &value ); + return true; +} + +bool IniFile::GetValueU(const CString &keyname, const CString &valuename, unsigned &value) const +{ + CString sValue; + if( !GetValue(keyname,valuename,sValue) ) + return false; + sscanf( sValue.c_str(), "%u", &value ); return true; } // gets value of [keyname] valuename = -// overloaded to return CString, int, and double -bool IniFile::GetValueF(const CString &keyname, const CString &valuename, float& value) +bool IniFile::GetValueF(const CString &keyname, const CString &valuename, float& value) const { CString sValue; - bool bSuccess = GetValue(keyname,valuename,sValue); - if( !bSuccess ) + if( !GetValue(keyname,valuename,sValue) ) return false; - value = (float)atof(sValue); + sscanf( sValue.c_str(), "%f", &value ); return true; } // gets value of [keyname] valuename = -// overloaded to return CString, int, and double -bool IniFile::GetValueB(const CString &keyname, const CString &valuename, bool& value) +bool IniFile::GetValueB(const CString &keyname, const CString &valuename, bool& value) const { CString sValue; - bool bSuccess = GetValue(keyname,valuename,sValue); - if( !bSuccess ) + if( !GetValue(keyname,valuename,sValue) ) return false; value = atoi(sValue) != 0; return true; @@ -196,7 +194,6 @@ bool IniFile::GetValueB(const CString &keyname, const CString &valuename, bool& // sets value of [keyname] valuename =. // specify the optional paramter as false (0) if you do not want it to create // the key if it doesn't exist. Returns true if data entered, false otherwise -// overloaded to accept CString, int, and double bool IniFile::SetValue(const CString &keyname, const CString &valuename, const CString &value, bool create) { if (!create && keys.find(keyname) == keys.end()) //if key doesn't exist @@ -213,25 +210,21 @@ bool IniFile::SetValue(const CString &keyname, const CString &valuename, const C // sets value of [keyname] valuename =. // specify the optional paramter as false (0) if you do not want it to create // the key if it doesn't exist. Returns true if data entered, false otherwise -// overloaded to accept CString, int, and double bool IniFile::SetValueI(const CString &keyname, const CString &valuename, int value, bool create) { return SetValue(keyname, valuename, ssprintf("%d",value), create); } -// sets value of [keyname] valuename =. -// specify the optional paramter as false (0) if you do not want it to create -// the key if it doesn't exist. Returns true if data entered, false otherwise -// overloaded to accept CString, int, and double +bool IniFile::SetValueU(const CString &keyname, const CString &valuename, unsigned value, bool create) +{ + return SetValue(keyname, valuename, ssprintf("%u",value), create); +} + bool IniFile::SetValueF(const CString &keyname, const CString &valuename, float value, bool create) { return SetValue(keyname, valuename, ssprintf("%f",value), create); } -// sets value of [keyname] valuename =. -// specify the optional paramter as false (0) if you do not want it to create -// the key if it doesn't exist. Returns true if data entered, false otherwise -// overloaded to accept CString, int, and double bool IniFile::SetValueB(const CString &keyname, const CString &valuename, bool value, bool create) { return SetValue(keyname, valuename, ssprintf("%d",value), create); diff --git a/stepmania/src/IniFile.h b/stepmania/src/IniFile.h index ea0efeba87..7065d8d847 100644 --- a/stepmania/src/IniFile.h +++ b/stepmania/src/IniFile.h @@ -39,7 +39,7 @@ public: //will contain error info if one occurs //ended up not using much, just in ReadFile and GetValue - CString error; + mutable CString error; //constructor, can specify pathname here instead of using SetPath later IniFile(CString inipath = ""); @@ -68,22 +68,22 @@ public: int GetNumValues(const CString &keyname) const; //gets value of [keyname] valuename = - //overloaded to return CString, int, and double, //returns "", or 0 if key/value not found. Sets error member to show problem - bool GetValue(const CString &key, const CString &valuename, CString& value); - bool GetValueI(const CString &key, const CString &valuename, int& value); - bool GetValueF(const CString &key, const CString &valuename, float& value); - bool GetValueB(const CString &key, const CString &valuename, bool& value); - bool GetValue(const CString &key, const CString &valuename, int& value) { return GetValueI(key, valuename, value); } - bool GetValue(const CString &key, const CString &valuename, float& value) { return GetValueF(key, valuename, value); } - bool GetValue(const CString &key, const CString &valuename, bool& value) { return GetValueB(key, valuename, value); } + bool GetValue(const CString &key, const CString &valuename, CString& value) const; + bool GetValueI(const CString &key, const CString &valuename, int& value) const; + bool GetValueU(const CString &key, const CString &valuename, unsigned& value) const; + bool GetValueF(const CString &key, const CString &valuename, float& value) const; + bool GetValueB(const CString &key, const CString &valuename, bool& value) const; + bool GetValue(const CString &key, const CString &valuename, int& value) const { return GetValueI(key, valuename, value); } + bool GetValue(const CString &key, const CString &valuename, float& value) const { return GetValueF(key, valuename, value); } + bool GetValue(const CString &key, const CString &valuename, bool& value) const { return GetValueB(key, valuename, value); } //sets value of [keyname] valuename =. //specify the optional paramter as false (0) if you do not want it to create //the key if it doesn't exist. Returns true if data entered, false otherwise - //overloaded to accept CString, int, and double bool SetValue(const CString &key, const CString &valuename, const CString &value, bool create = 1); bool SetValueI(const CString &key, const CString &valuename, int value, bool create = 1); + bool SetValueU(const CString &key, const CString &valuename, unsigned value, bool create = 1); bool SetValueF(const CString &key, const CString &valuename, float value, bool create = 1); bool SetValueB(const CString &key, const CString &valuename, bool value, bool create = 1); bool SetValue(const CString &key, const CString &valuename, int value, bool create = 1) { return SetValue(key, valuename, value, create); }