1
0

sprintf() begone! Replaced with StringUtils' Printf()

git-svn-id: http://mc-server.googlecode.com/svn/trunk@216 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
madmaxoft@gmail.com
2012-02-01 13:43:47 +00:00
parent d3614be2e0
commit 2568bad3cc
18 changed files with 429 additions and 292 deletions

View File

@@ -38,11 +38,13 @@ using namespace std;
#endif
#ifndef _WIN32
#define sprintf_s(buffer, buffer_size, stringbuffer, ...) (sprintf(buffer, stringbuffer, __VA_ARGS__))
#define vsprintf_s(buffer, stringbuffer, ...) (vsprintf(buffer, stringbuffer, __VA_ARGS__))
#define sscanf_s(buffer, stringbuffer, ...) (sscanf(buffer, stringbuffer, __VA_ARGS__))
#endif
cIniFile::cIniFile( const string iniPath)
{
Path( iniPath);
@@ -115,6 +117,10 @@ bool cIniFile::ReadFile()
return false;
}
bool cIniFile::WriteFile()
{
unsigned commentID, keyID, valueID;
@@ -148,6 +154,10 @@ bool cIniFile::WriteFile()
return true;
}
long cIniFile::FindKey( const string & keyname) const
{
for ( unsigned keyID = 0; keyID < names.size(); ++keyID)
@@ -156,6 +166,10 @@ long cIniFile::FindKey( const string & keyname) const
return noID;
}
long cIniFile::FindValue( unsigned const keyID, const string & valuename) const
{
if ( !keys.size() || keyID >= keys.size())
@@ -167,6 +181,10 @@ long cIniFile::FindValue( unsigned const keyID, const string & valuename) const
return noID;
}
unsigned cIniFile::AddKeyName( const string & keyname)
{
names.resize( names.size() + 1, keyname);
@@ -174,6 +192,10 @@ unsigned cIniFile::AddKeyName( const string & keyname)
return names.size() - 1;
}
string cIniFile::KeyName( unsigned const keyID) const
{
if ( keyID < names.size())
@@ -182,6 +204,10 @@ string cIniFile::KeyName( unsigned const keyID) const
return "";
}
unsigned cIniFile::NumValues( unsigned const keyID)
{
if ( keyID < keys.size())
@@ -189,6 +215,10 @@ unsigned cIniFile::NumValues( unsigned const keyID)
return 0;
}
unsigned cIniFile::NumValues( const string & keyname)
{
long keyID = FindKey( keyname);
@@ -197,6 +227,10 @@ unsigned cIniFile::NumValues( const string & keyname)
return keys[keyID].names.size();
}
string cIniFile::ValueName( unsigned const keyID, unsigned const valueID) const
{
if ( keyID < keys.size() && valueID < keys[keyID].names.size())
@@ -204,6 +238,10 @@ string cIniFile::ValueName( unsigned const keyID, unsigned const valueID) const
return "";
}
string cIniFile::ValueName( const string & keyname, unsigned const valueID) const
{
long keyID = FindKey( keyname);
@@ -212,6 +250,10 @@ string cIniFile::ValueName( const string & keyname, unsigned const valueID) cons
return ValueName( keyID, valueID);
}
bool cIniFile::SetValue( unsigned const keyID, unsigned const valueID, const string & value)
{
if ( keyID < keys.size() && valueID < keys[keyID].names.size())
@@ -220,6 +262,10 @@ bool cIniFile::SetValue( unsigned const keyID, unsigned const valueID, const str
return false;
}
bool cIniFile::SetValue( const string & keyname, const string & valuename, const string & value, bool const create)
{
long keyID = FindKey( keyname);
@@ -250,33 +296,48 @@ bool cIniFile::SetValue( const string & keyname, const string & valuename, const
return true;
}
bool cIniFile::SetValueI( const string & keyname, const string & valuename, int const value, bool const create)
{
char svalue[MAX_VALUEDATA];
sprintf_s( svalue, MAX_VALUEDATA, "%d", value);
return SetValue( keyname, valuename, svalue, create);
AString Data;
Printf(Data, "%d", value);
return SetValue( keyname, valuename, Data, create);
}
bool cIniFile::SetValueF( const string & keyname, const string & valuename, double const value, bool const create)
{
char svalue[MAX_VALUEDATA];
sprintf_s( svalue, MAX_VALUEDATA, "%f", value);
return SetValue( keyname, valuename, svalue, create);
AString Data;
Printf(Data, "%f", value);
return SetValue( keyname, valuename, Data, create);
}
bool cIniFile::SetValueV( const string & keyname, const string & valuename, char *format, ...)
{
va_list args;
char value[MAX_VALUEDATA];
va_start( args, format);
vsprintf_s( value, format, args);
AString Data;
AppendVPrintf(Data, format, args);
va_end( args);
return SetValue( keyname, valuename, value );
return SetValue( keyname, valuename, Data);
}
string cIniFile::GetValue( unsigned const keyID, unsigned const valueID, const string & defValue) const
{
if ( keyID < keys.size() && valueID < keys[keyID].names.size())
@@ -284,6 +345,10 @@ string cIniFile::GetValue( unsigned const keyID, unsigned const valueID, const s
return defValue;
}
string cIniFile::GetValue( const string & keyname, const string & valuename, const string & defValue) const
{
long keyID = FindKey( keyname);
@@ -297,22 +362,32 @@ string cIniFile::GetValue( const string & keyname, const string & valuename, con
return keys[keyID].values[valueID];
}
int cIniFile::GetValueI(const string & keyname, const string & valuename, int const defValue) const
{
char svalue[MAX_VALUEDATA];
sprintf_s( svalue, MAX_VALUEDATA, "%d", defValue);
return atoi( GetValue( keyname, valuename, svalue).c_str());
AString Data;
Printf(Data, "%d", defValue);
return atoi( GetValue( keyname, valuename, Data).c_str());
}
double cIniFile::GetValueF(const string & keyname, const string & valuename, double const defValue) const
{
char svalue[MAX_VALUEDATA];
sprintf_s( svalue, MAX_VALUEDATA, "%f", defValue);
return atof( GetValue( keyname, valuename, svalue).c_str());
AString Data;
Printf(Data, "%f", defValue);
return atof( GetValue( keyname, valuename, Data).c_str());
}
// 16 variables may be a bit of over kill, but hey, it's only code.
unsigned cIniFile::GetValueV( const string & keyname, const string & valuename, char *format,
void *v1, void *v2, void *v3, void *v4,
@@ -342,6 +417,10 @@ unsigned cIniFile::GetValueV( const string & keyname, const string & valuename,
return nVals;
}
bool cIniFile::DeleteValueByID( const unsigned keyID, const unsigned valueID )
{
if ( keyID < keys.size() && valueID < keys[keyID].names.size())