diff options
Diffstat (limited to 'common/config-file.cpp')
-rw-r--r-- | common/config-file.cpp | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/common/config-file.cpp b/common/config-file.cpp index 1ebd9b5701..81e0ae6b45 100644 --- a/common/config-file.cpp +++ b/common/config-file.cpp @@ -26,16 +26,8 @@ #include "common/system.h" #include "common/textconsole.h" -#define MAXLINELEN 256 - namespace Common { -/** - * Check whether the given string is a valid section or key name. - * For that, it must only consist of letters, numbers, dashes and - * underscores. In particular, white space and "#", "=", "[", "]" - * are not valid! - */ bool ConfigFile::isValidName(const String &name) { const char *p = name.c_str(); while (*p && (isalnum(static_cast<unsigned char>(*p)) || *p == '-' || *p == '_' || *p == '.')) @@ -255,10 +247,15 @@ void ConfigFile::renameSection(const String &oldName, const String &newName) { assert(isValidName(oldName)); assert(isValidName(newName)); - //Section *os = getSection(oldName); - Section *ns = getSection(newName); - if (ns) { - ns->name = newName; + Section *os = getSection(oldName); + const Section *ns = getSection(newName); + if (os) { + // HACK: For now we just print a warning, for more info see the TODO + // below. + if (ns) + warning("ConfigFile::renameSection: Section name \"%s\" already used", newName.c_str()); + else + os->name = newName; } // TODO: Check here whether there already is a section with the // new name. Not sure how to cope with that case, we could: |