From fb05242d36052c2f16185424e8499e8d5b6ad5fa Mon Sep 17 00:00:00 2001 From: Vladimir Menshakov Date: Tue, 28 Nov 2017 22:04:46 +0000 Subject: [PATCH] COMMON: Add a way to specify default section name for simple sectionless .ini files --- common/ini-file.cpp | 4 ++++ common/ini-file.h | 3 +++ 2 files changed, 7 insertions(+) diff --git a/common/ini-file.cpp b/common/ini-file.cpp index 4c4acc9e60d..bae7e7d3cd8 100644 --- a/common/ini-file.cpp +++ b/common/ini-file.cpp @@ -72,6 +72,7 @@ bool INIFile::loadFromStream(SeekableReadStream &stream) { KeyValue kv; String comment; int lineno = 0; + section.name = _defaultSectionName; // TODO: Detect if a section occurs multiple times (or likewise, if // a key occurs multiple times inside one section). @@ -297,6 +298,9 @@ void INIFile::renameSection(const String &oldName, const String &newName) { // - merge the two sections "oldName" and "newName" } +void INIFile::setDefaultSectionName(const String &name) { + _defaultSectionName = name; +} bool INIFile::hasKey(const String &key, const String §ion) const { if (!isValidName(key)) { diff --git a/common/ini-file.h b/common/ini-file.h index 5d72f23bb9f..f84ca6009c9 100644 --- a/common/ini-file.h +++ b/common/ini-file.h @@ -105,6 +105,8 @@ public: void removeSection(const String §ion); void renameSection(const String &oldName, const String &newName); + void setDefaultSectionName(const String &name); ///< sets initial section name for section-less ini files + bool hasKey(const String &key, const String §ion) const; bool getKey(const String &key, const String §ion, String &value) const; void setKey(const String &key, const String §ion, const String &value); @@ -118,6 +120,7 @@ public: void allowNonEnglishCharacters(); private: + String _defaultSectionName; SectionList _sections; bool _allowNonEnglishCharacters;