[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
This commit is contained in:
donho 2007-11-29 23:40:01 +00:00
parent 011f2fcbc6
commit 74d580d949
5 changed files with 37 additions and 17 deletions

View File

@ -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);
}

View File

@ -192,7 +192,7 @@
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="copy ..\src\config.xml ..\bin\config.xml&#x0D;&#x0A;copy ..\src\langs.xml ..\bin\langs.xml&#x0D;&#x0A;copy ..\src\stylers.xml ..\bin\stylers.xml&#x0D;&#x0A;copy ..\src\font\LINEDRAW.TTF ..\bin\LINEDRAW.TTF&#x0D;&#x0A;copy ..\src\shortcuts.xml ..\bin\shortcuts.xml&#x0D;&#x0A;copy ..\src\contextMenu.xml ..\bin\contextMenu.xml&#x0D;&#x0A;"
CommandLine="copy ..\src\config.model.xml ..\bin\config.model.xml&#x0D;&#x0A;copy ..\src\langs.model.xml ..\bin\langs.model.xml&#x0D;&#x0A;copy ..\src\stylers.model.xml ..\bin\stylers.model.xml&#x0D;&#x0A;copy ..\src\font\LINEDRAW.TTF ..\bin\LINEDRAW.TTF&#x0D;&#x0A;copy ..\src\shortcuts.xml ..\bin\shortcuts.xml&#x0D;&#x0A;copy ..\src\contextMenu.xml ..\bin\contextMenu.xml&#x0D;&#x0A;"
/>
</Configuration>
</Configurations>
@ -573,11 +573,11 @@
>
</File>
<File
RelativePath="..\src\resource.h"
RelativePath="..\src\WinControls\Preference\resource.h"
>
</File>
<File
RelativePath="..\src\WinControls\Preference\resource.h"
RelativePath="..\src\resource.h"
>
</File>
<File