X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/75cd69d3fca8b0a59d2335384f95091ad89b998c..b12381fd076b83ab289dc38a14b701c4fbb76715:/stglibs/conffiles.lib/conffiles.cpp diff --git a/stglibs/conffiles.lib/conffiles.cpp b/stglibs/conffiles.lib/conffiles.cpp index a6fbe6d6..47a92db0 100644 --- a/stglibs/conffiles.lib/conffiles.cpp +++ b/stglibs/conffiles.lib/conffiles.cpp @@ -33,7 +33,6 @@ #include #include -#include #include "conffiles.h" #include "common.h" @@ -46,81 +45,45 @@ bool StringCaseCmp(const string & str1, const string & str2) return (strcasecmp(str1.c_str(), str2.c_str()) < 0); } //--------------------------------------------------------------------------- -CONFIGFILE::CONFIGFILE(const string &fn): -param_val(StringCaseCmp) +CONFIGFILE::CONFIGFILE(const string & fn, bool nook) + : param_val(StringCaseCmp), + fileName(fn), + error(0) { -fileName = fn; -f = fopen(fn.c_str(), "rt"); - -error = 0; -param_val.clear(); +ifstream f(fileName.c_str()); if (!f) { - error = -1; + if (!nook) + error = -1; return; } -string line, parameter, value; - -unsigned long pos; -bool emptyLine; -unsigned char c; - -while (!feof(f)) +string line; +while (getline(f, line)) { - line.erase(line.begin(), line.end()); - - c = fgetc(f); - while (!feof(f)) - { - //printf("%c", c); - if (c == '\n') - break; - line.push_back(c); - c = fgetc(f); - } - - pos = line.find('#'); + size_t pos = line.find('#'); if (pos != string::npos) line.resize(pos); - emptyLine = true; - for (unsigned int i = 0; i < line.size(); i++) - { - if (line[i] != ' ' && line[i] != '\t' && line[i] != '\n' && line[i] != '\r') - { - emptyLine = false; - break; - } - } - if (emptyLine) - { + if (line.find_first_not_of(" \t\r") == string::npos) continue; - } - pos = line.find("="); + pos = line.find_first_of('='); if (pos == string::npos) { - fclose(f); error = -1; - //printf("%s find(=) error\n", __FILE__); return; } - parameter = line.substr(0, pos); - //transform(parameter.begin(), parameter.end(), parameter.begin(), tolower); - value = line.substr(pos + 1); - //cout << parameter << "==" << value << endl; + + string parameter = line.substr(0, pos); + string value = line.substr(pos + 1); param_val[parameter] = value; - //cout << parameter << "==" << param_val[parameter] << endl; } - -fclose(f); } //--------------------------------------------------------------------------- CONFIGFILE::~CONFIGFILE() { - } //--------------------------------------------------------------------------- const string & CONFIGFILE::GetFileName() const @@ -137,17 +100,17 @@ return e; //--------------------------------------------------------------------------- int CONFIGFILE::Flush() { -fstream f(fileName.c_str(), ios::out); +ofstream f(fileName.c_str()); if (!f.is_open()) { error = EIO; return EIO; } -it = param_val.begin(); +map::const_iterator it = param_val.begin(); while (it != param_val.end()) { - f << it->first << "=" << it->second << endl; + f << it->first << "=" << it->second << "\n"; it++; } @@ -155,7 +118,7 @@ f.close(); return 0; } -//--------------------------------------------------------------------------- +/*//--------------------------------------------------------------------------- int CONFIGFILE::ReadString(const string & param, char * str, int * maxLen, const char * defaultVal) const { it = param_val.find(param); @@ -172,29 +135,29 @@ if (it != param_val.end()) strncpy(str, defaultVal, *maxLen); *maxLen = strlen(defaultVal); return -1; -} +}*/ //--------------------------------------------------------------------------- int CONFIGFILE::ReadString(const string & param, string * val, const string & defaultVal) const { -it = param_val.find(param); +const map::const_iterator it(param_val.find(param)); // îÁÛÌÉ ÎÕÖÎÕÀ ÐÅÒÅÍÅÎÎÕÀ if (it != param_val.end()) { // þÔÏ-ÔÏ ÓÔÏÉÔ - *val = param_val[param]; + *val = it->second; return 0; } *val = defaultVal; return -1; } -//--------------------------------------------------------------------------- +/*//--------------------------------------------------------------------------- int CONFIGFILE::WriteString(const string & param, const char * val) { WriteString(param, string(val)); return 0; -} +}*/ //--------------------------------------------------------------------------- int CONFIGFILE::WriteString(const string & param, const string &val) { @@ -205,12 +168,12 @@ return 0; //--------------------------------------------------------------------------- int CONFIGFILE::ReadTime(const string & param, time_t * val, time_t defaultVal) const { -it = param_val.find(param); +const map::const_iterator it(param_val.find(param)); if (it != param_val.end()) { char *res; - *val = strtol(param_val[param].c_str(), &res, 10); + *val = strtol(it->second.c_str(), &res, 10); if (*res != 0) { *val = defaultVal; //Error! @@ -225,14 +188,14 @@ return -1; //--------------------------------------------------------------------------- int CONFIGFILE::ReadInt(const string & param, int * val, int defaultVal) const { -it = param_val.find(param); +const map::const_iterator it(param_val.find(param)); // îÁÛÌÉ ÎÕÖÎÕÀ ÐÅÒÅÍÅÎÎÕÀ if (it != param_val.end()) { // þÔÏ-ÔÏ ÓÔÏÉÔ char *res; - *val = strtol(param_val[param].c_str(), &res, 10); + *val = strtol(it->second.c_str(), &res, 10); if (*res != 0) { *val = defaultVal; //Error! @@ -247,14 +210,14 @@ return -1; //--------------------------------------------------------------------------- int CONFIGFILE::ReadUInt(const string & param, unsigned int * val, unsigned int defaultVal) const { -it = param_val.find(param); +const map::const_iterator it(param_val.find(param)); // îÁÛÌÉ ÎÕÖÎÕÀ ÐÅÒÅÍÅÎÎÕÀ if (it != param_val.end()) { // þÔÏ-ÔÏ ÓÔÏÉÔ char *res; - *val = strtoul(param_val[param].c_str(), &res, 10); + *val = strtoul(it->second.c_str(), &res, 10); if (*res != 0) { *val = defaultVal; //Error! @@ -269,14 +232,14 @@ return -1; //--------------------------------------------------------------------------- int CONFIGFILE::ReadLongInt(const string & param, long int * val, long int defaultVal) const { -it = param_val.find(param); +const map::const_iterator it(param_val.find(param)); // îÁÛÌÉ ÎÕÖÎÕÀ ÐÅÒÅÍÅÎÎÕÀ if (it != param_val.end()) { // þÔÏ-ÔÏ ÓÔÏÉÔ char *res; - *val = strtol(param_val[param].c_str(), &res, 10); + *val = strtol(it->second.c_str(), &res, 10); if (*res != 0) { *val = defaultVal; //Error! @@ -291,14 +254,14 @@ return -1; //--------------------------------------------------------------------------- int CONFIGFILE::ReadULongInt(const string & param, unsigned long int * val, unsigned long int defaultVal) const { -it = param_val.find(param); +const map::const_iterator it(param_val.find(param)); // îÁÛÌÉ ÎÕÖÎÕÀ ÐÅÒÅÍÅÎÎÕÀ if (it != param_val.end()) { // þÔÏ-ÔÏ ÓÔÏÉÔ char *res; - *val = strtoul(param_val[param].c_str(), &res, 10); + *val = strtoul(it->second.c_str(), &res, 10); if (*res != 0) { *val = defaultVal; //Error! @@ -313,14 +276,14 @@ return -1; //--------------------------------------------------------------------------- int CONFIGFILE::ReadLongLongInt(const string & param, int64_t * val, int64_t defaultVal) const { -it = param_val.find(param); +const map::const_iterator it(param_val.find(param)); // îÁÛÌÉ ÎÕÖÎÕÀ ÐÅÒÅÍÅÎÎÕÀ if (it != param_val.end()) { // þÔÏ-ÔÏ ÓÔÏÉÔ char *res; - *val = strtoll(param_val[param].c_str(), &res, 10); + *val = strtoll(it->second.c_str(), &res, 10); if (*res != 0) { *val = defaultVal; //Error! @@ -335,14 +298,14 @@ return -1; //--------------------------------------------------------------------------- int CONFIGFILE::ReadULongLongInt(const string & param, uint64_t * val, uint64_t defaultVal) const { -it = param_val.find(param); +const map::const_iterator it(param_val.find(param)); // îÁÛÌÉ ÎÕÖÎÕÀ ÐÅÒÅÍÅÎÎÕÀ if (it != param_val.end()) { // þÔÏ-ÔÏ ÓÔÏÉÔ char *res; - *val = strtoull(param_val[param].c_str(), &res, 10); + *val = strtoull(it->second.c_str(), &res, 10); if (*res != 0) { *val = defaultVal; //Error! @@ -357,14 +320,14 @@ return -1; //--------------------------------------------------------------------------- int CONFIGFILE::ReadShortInt(const string & param, short int * val, short int defaultVal) const { -it = param_val.find(param); +const map::const_iterator it(param_val.find(param)); // îÁÛÌÉ ÎÕÖÎÕÀ ÐÅÒÅÍÅÎÎÕÀ if (it != param_val.end()) { // þÔÏ-ÔÏ ÓÔÏÉÔ char *res; - *val = (short)strtol(param_val[param].c_str(), &res, 10); + *val = (short)strtol(it->second.c_str(), &res, 10); if (*res != 0) { *val = defaultVal; //Error! @@ -379,14 +342,14 @@ return -1; //--------------------------------------------------------------------------- int CONFIGFILE::ReadUShortInt(const string & param, unsigned short int * val, unsigned short int defaultVal) const { -it = param_val.find(param); +const map::const_iterator it(param_val.find(param)); // îÁÛÌÉ ÎÕÖÎÕÀ ÐÅÒÅÍÅÎÎÕÀ if (it != param_val.end()) { // þÔÏ-ÔÏ ÓÔÏÉÔ char *res; - *val = (short)strtoul(param_val[param].c_str(), &res, 10); + *val = (short)strtoul(it->second.c_str(), &res, 10); if (*res != 0) { *val = defaultVal; //Error! @@ -411,25 +374,22 @@ return 0; //--------------------------------------------------------------------------- int CONFIGFILE::ReadDouble(const string & param, double * val, double defaultVal) const { -it = param_val.find(param); +const map::const_iterator it(param_val.find(param)); // îÁÛÌÉ ÎÕÖÎÕÀ ÐÅÒÅÍÅÎÎÕÀ if (it != param_val.end()) { // þÔÏ-ÔÏ ÓÔÏÉÔ char *res; - *val = strtod(param_val[param].c_str(), &res); + *val = strtod(it->second.c_str(), &res); if (*res != 0) { - //cout << param << "=" << param_val[param] << " Error!!!\n"; *val = defaultVal; //Error! return EINVAL; } return 0; } -//cout << "îÉÞÅÇÏ ÎÅÔ!!!\n"; - *val = defaultVal; return -1; }