Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/base/StarConfiguration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/base/StarConfiguration.cpp')
-rw-r--r--source/base/StarConfiguration.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/source/base/StarConfiguration.cpp b/source/base/StarConfiguration.cpp
index 81c1212..89ec7fa 100644
--- a/source/base/StarConfiguration.cpp
+++ b/source/base/StarConfiguration.cpp
@@ -46,7 +46,10 @@ void Configuration::set(String const& key, Json const& value) {
if (key == "configurationVersion")
throw ConfigurationException("cannot set configurationVersion");
- m_currentConfig = m_currentConfig.set(key, value);
+ if (value)
+ m_currentConfig = m_currentConfig.set(key, value);
+ else
+ m_currentConfig = m_currentConfig.eraseKey(key);
}
void Configuration::setPath(String const& path, Json const& value) {
@@ -54,7 +57,10 @@ void Configuration::setPath(String const& path, Json const& value) {
if (path.splitAny("[].").get(0) == "configurationVersion")
throw ConfigurationException("cannot set configurationVersion");
- m_currentConfig = m_currentConfig.setPath(path, value);
+ if (value)
+ m_currentConfig = m_currentConfig.setPath(path, value);
+ else
+ m_currentConfig = m_currentConfig.erasePath(path);
}
}