aboutsummaryrefslogtreecommitdiff
path: root/common/config-file.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'common/config-file.cpp')
-rw-r--r--common/config-file.cpp21
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: