1
0

cIniFile doesn't store filename internally anymore.

This commit is contained in:
madmaxoft
2013-10-25 11:15:44 +02:00
parent c875b88758
commit 9e9198e090
14 changed files with 56 additions and 213 deletions

View File

@@ -42,17 +42,16 @@ using namespace std;
cIniFile::cIniFile(const string & a_Path) :
cIniFile::cIniFile(void) :
m_IsCaseInsensitive(true)
{
Path(a_Path);
}
bool cIniFile::ReadFile(bool a_AllowExampleRedirect)
bool cIniFile::ReadFile(const AString & a_FileName, bool a_AllowExampleRedirect)
{
// Normally you would use ifstream, but the SGI CC compiler has
// a few bugs with ifstream. So ... fstream used.
@@ -62,14 +61,14 @@ bool cIniFile::ReadFile(bool a_AllowExampleRedirect)
string::size_type pLeft, pRight;
bool IsFromExampleRedirect = false;
f.open((FILE_IO_PREFIX + m_Path).c_str(), ios::in);
f.open((FILE_IO_PREFIX + a_FileName).c_str(), ios::in);
if (f.fail())
{
f.clear();
if (a_AllowExampleRedirect)
{
// Retry with the .example.ini file instead of .ini:
string ExPath(m_Path.substr(0, m_Path.length() - 4));
string ExPath(a_FileName.substr(0, a_FileName.length() - 4));
ExPath.append(".example.ini");
f.open((FILE_IO_PREFIX + ExPath).c_str(), ios::in);
if (f.fail())
@@ -166,7 +165,7 @@ bool cIniFile::ReadFile(bool a_AllowExampleRedirect)
if (IsFromExampleRedirect)
{
WriteFile();
WriteFile(FILE_IO_PREFIX + a_FileName);
}
return true;
}
@@ -175,14 +174,14 @@ bool cIniFile::ReadFile(bool a_AllowExampleRedirect)
bool cIniFile::WriteFile(void) const
bool cIniFile::WriteFile(const AString & a_FileName) const
{
unsigned commentID, keyID, valueID;
// Normally you would use ofstream, but the SGI CC compiler has
// a few bugs with ofstream. So ... fstream used.
fstream f;
f.open((FILE_IO_PREFIX + m_Path).c_str(), ios::out);
f.open((FILE_IO_PREFIX + a_FileName).c_str(), ios::out);
if (f.fail())
{
return false;