summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/client.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/client.cpp b/src/client.cpp
index 3944215a..eebdaace 100644
--- a/src/client.cpp
+++ b/src/client.cpp
@@ -1035,6 +1035,32 @@ void Client::initHomeDir()
logger->error(strprintf(_("%s doesn't exist and can't be created! "
"Exiting."), mConfigDir.c_str()));
}
+
+ struct stat statbuf;
+ std::string newConfigFile = mConfigDir + "/config.xml";
+ if (stat(newConfigFile.c_str(), &statbuf))
+ {
+ std::string oldConfigFile = std::string(PHYSFS_getUserDir()) +
+ "/.tmw/config.xml";
+ if (!stat(oldConfigFile.c_str(), &statbuf) && S_ISREG(statbuf.st_mode))
+ {
+ std::ifstream oldConfig;
+ std::ofstream newConfig;
+ logger->log("Copying old TMW settings.");
+
+ oldConfig.open(oldConfigFile.c_str(), std::ios::binary);
+ newConfig.open(newConfigFile.c_str(), std::ios::binary);
+
+ if (!oldConfig.is_open() || !newConfig.is_open())
+ logger->log("Unable to copy old settings.");
+ else
+ {
+ newConfig << oldConfig.rdbuf();
+ newConfig.close();
+ oldConfig.close();
+ }
+ }
+ }
}
/**