aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--base/main.cpp4
-rw-r--r--common/config-manager.cpp9
-rw-r--r--common/config-manager.h3
3 files changed, 12 insertions, 4 deletions
diff --git a/base/main.cpp b/base/main.cpp
index 0dfa193fff..afb70ad923 100644
--- a/base/main.cpp
+++ b/base/main.cpp
@@ -345,7 +345,9 @@ extern "C" int scummvm_main(GameDetector &detector, int argc, char *argv[]) {
}
}
if (cfgFilename != NULL)
- ConfMan.switchFile(cfgFilename);
+ ConfMan.loadConfigFile(cfgFilename);
+ else
+ ConfMan.loadDefaultConfigFile();
// Update the config file
ConfMan.set("versioninfo", gScummVMVersion, Common::ConfigManager::kApplicationDomain);
diff --git a/common/config-manager.cpp b/common/config-manager.cpp
index 33bb1cdfef..5bf26fbe50 100644
--- a/common/config-manager.cpp
+++ b/common/config-manager.cpp
@@ -62,7 +62,12 @@ const String falseStr("false");
ConfigManager::ConfigManager() {
+ // Ensure the global domain(s) are setup.
+ _globalDomains.addKey(kApplicationDomain);
+}
+
+void ConfigManager::loadDefaultConfigFile() {
char configFile[MAXPATHLEN];
#if defined(UNIX)
if(getenv("HOME") != NULL)
@@ -80,10 +85,10 @@ ConfigManager::ConfigManager() {
#endif
#endif
- switchFile(configFile);
+ loadConfigFile(configFile);
}
-void ConfigManager::switchFile(const String &filename) {
+void ConfigManager::loadConfigFile(const String &filename) {
_globalDomains.clear();
_gameDomains.clear();
_transientDomain.clear();
diff --git a/common/config-manager.h b/common/config-manager.h
index 5b6c27d531..8f946e26b6 100644
--- a/common/config-manager.h
+++ b/common/config-manager.h
@@ -74,7 +74,8 @@ public:
/** The transient (pseudo) domain. */
static const String kTransientDomain;
- void switchFile(const String &filename);
+ void loadDefaultConfigFile();
+ void loadConfigFile(const String &filename);
bool hasKey(const String &key) const;
bool hasKey(const String &key, const String &dom) const;