From 74d580d9496f94986494d9198bb155c36e7aca79 Mon Sep 17 00:00:00 2001 From: donho Date: Thu, 29 Nov 2007 23:40:01 +0000 Subject: [PATCH] [BUG_FIXED] Make the "recovery system" for 3 mandatory xml files (config.xml, langs.xml and stylers.xml) to prevent the fail loading due to the corrupted files. git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository@77 f5eea248-9336-0410-98b8-ebc06183d4e3 --- PowerEditor/src/Parameters.cpp | 48 +++++++++++++------ .../src/{config.xml => config.model.xml} | 0 .../src/{langs.xml => langs.model.xml} | 0 .../src/{stylers.xml => stylers.model.xml} | 0 PowerEditor/visual.net/notepadPlus.vcproj | 6 +-- 5 files changed, 37 insertions(+), 17 deletions(-) rename PowerEditor/src/{config.xml => config.model.xml} (100%) rename PowerEditor/src/{langs.xml => langs.model.xml} (100%) rename PowerEditor/src/{stylers.xml => stylers.model.xml} (100%) diff --git a/PowerEditor/src/Parameters.cpp b/PowerEditor/src/Parameters.cpp index c4a242e49..4635e5587 100644 --- a/PowerEditor/src/Parameters.cpp +++ b/PowerEditor/src/Parameters.cpp @@ -131,6 +131,14 @@ bool NppParameters::load(/*bool noUserPath*/) strcpy(langs_xml_path, nppPath); PathAppend(langs_xml_path, "langs.xml"); + if (!PathFileExists(langs_xml_path)) + { + char srcLangsPath[MAX_PATH]; + strcpy(srcLangsPath, nppPath); + PathAppend(srcLangsPath, "langs.model.xml"); + + ::CopyFile(srcLangsPath, langs_xml_path, TRUE); + } _pXmlDoc = new TiXmlDocument(langs_xml_path); bool loadOkay = _pXmlDoc->LoadFile(); @@ -151,23 +159,35 @@ bool NppParameters::load(/*bool noUserPath*/) strcpy(configPath, userPath); PathAppend(configPath, "config.xml"); - if (!PathFileExists(configPath)) - { - char srcConfigPath[MAX_PATH]; - strcpy(srcConfigPath, nppPath); - PathAppend(srcConfigPath, "config.xml"); - - ::CopyFile(srcConfigPath, configPath, TRUE); - } - _pXmlUserDoc = new TiXmlDocument(configPath); loadOkay = _pXmlUserDoc->LoadFile(); if (!loadOkay) { - ::MessageBox(NULL, "Load config.xml failed!", "Configurator",MB_OK); - delete _pXmlUserDoc; - _pXmlUserDoc = NULL; - isAllLaoded = false; + int res = ::MessageBox(NULL, "Load config.xml failed!\rDo you want to recover your config.xml?", "Configurator",MB_YESNO); + if (res ==IDYES) + { + char srcConfigPath[MAX_PATH]; + strcpy(srcConfigPath, nppPath); + PathAppend(srcConfigPath, "config.model.xml"); + ::CopyFile(srcConfigPath, configPath, FALSE); + + loadOkay = _pXmlUserDoc->LoadFile(); + if (!loadOkay) + { + ::MessageBox(NULL, "Recover config.xml failed!", "Configurator",MB_OK); + delete _pXmlUserDoc; + _pXmlUserDoc = NULL; + isAllLaoded = false; + } + else + getUserParametersFromXmlTree(); + } + else + { + delete _pXmlUserDoc; + _pXmlUserDoc = NULL; + isAllLaoded = false; + } } else getUserParametersFromXmlTree(); @@ -183,7 +203,7 @@ bool NppParameters::load(/*bool noUserPath*/) { char srcStylersPath[MAX_PATH]; strcpy(srcStylersPath, nppPath); - PathAppend(srcStylersPath, "stylers.xml"); + PathAppend(srcStylersPath, "stylers.model.xml"); ::CopyFile(srcStylersPath, stylerPath, TRUE); } diff --git a/PowerEditor/src/config.xml b/PowerEditor/src/config.model.xml similarity index 100% rename from PowerEditor/src/config.xml rename to PowerEditor/src/config.model.xml diff --git a/PowerEditor/src/langs.xml b/PowerEditor/src/langs.model.xml similarity index 100% rename from PowerEditor/src/langs.xml rename to PowerEditor/src/langs.model.xml diff --git a/PowerEditor/src/stylers.xml b/PowerEditor/src/stylers.model.xml similarity index 100% rename from PowerEditor/src/stylers.xml rename to PowerEditor/src/stylers.model.xml diff --git a/PowerEditor/visual.net/notepadPlus.vcproj b/PowerEditor/visual.net/notepadPlus.vcproj index f37281e50..908a590b0 100644 --- a/PowerEditor/visual.net/notepadPlus.vcproj +++ b/PowerEditor/visual.net/notepadPlus.vcproj @@ -192,7 +192,7 @@ /> @@ -573,11 +573,11 @@ >