summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/client.cpp1
-rw-r--r--src/configuration.cpp3
-rw-r--r--src/gui/windows/quitdialog.cpp1
3 files changed, 5 insertions, 0 deletions
diff --git a/src/client.cpp b/src/client.cpp
index f86365cc9..27c55dcee 100644
--- a/src/client.cpp
+++ b/src/client.cpp
@@ -1705,6 +1705,7 @@ int Client::gameExec()
Net::getGameHandler()->disconnect();
Net::getGameHandler()->clear();
mServerName.clear();
+ serverConfig.write();
serverConfig.unload();
mState = STATE_CHOOSE_SERVER;
diff --git a/src/configuration.cpp b/src/configuration.cpp
index da6e97501..cb7adf8f1 100644
--- a/src/configuration.cpp
+++ b/src/configuration.cpp
@@ -801,6 +801,9 @@ void ConfigurationObject::writeToXML(const XmlTextWriterPtr writer)
void Configuration::write()
{
+ if (mConfigPath.empty())
+ return;
+
// Do not attempt to write to file that cannot be opened for writing
FILE *const testFile = fopen(mConfigPath.c_str(), "w");
if (!testFile)
diff --git a/src/gui/windows/quitdialog.cpp b/src/gui/windows/quitdialog.cpp
index 215987ffb..ff9f669b7 100644
--- a/src/gui/windows/quitdialog.cpp
+++ b/src/gui/windows/quitdialog.cpp
@@ -195,6 +195,7 @@ void QuitDialog::action(const gcn::ActionEvent &event)
{
Net::getCharServerHandler()->switchCharacter();
Game::closeDialogs();
+ serverConfig.write();
}
}
}