Fixed #617 (auto-solve corrupt config.dat)

Originally committed to SVN as r1684.
This commit is contained in:
Rodrigo Braz Monteiro 2008-01-11 04:04:28 +00:00
parent 337d451e94
commit 5a9249f227
1 changed files with 8 additions and 1 deletions

View File

@ -41,6 +41,8 @@
#include <fstream> #include <fstream>
#include <wx/intl.h> #include <wx/intl.h>
#include <wx/settings.h> #include <wx/settings.h>
#include <wx/filefn.h>
#include <wx/utils.h>
#include "options.h" #include "options.h"
#include "text_file_reader.h" #include "text_file_reader.h"
#include "text_file_writer.h" #include "text_file_writer.h"
@ -412,7 +414,12 @@ void OptionsManager::Load() {
// Read header // Read header
TextFileReader file(filename); TextFileReader file(filename);
wxString header = file.ReadLineFromFile(); wxString header = file.ReadLineFromFile();
if (header != _T("[Config]")) throw _T("Configuration file is invalid"); if (header != _T("[Config]")) {
wxMessageBox(_("Configuration file is either invalid or corrupt. The current file will be backed up and replaced with a default file."),_("Error"),wxCENTRE|wxICON_WARNING);
wxRenameFile(filename,filename + wxString::Format(_T(".%i.backup"),wxGetUTCTime()));
modified = true;
return;
}
// Get variables // Get variables
std::map<wxString,VariableData>::iterator cur; std::map<wxString,VariableData>::iterator cur;