[UPDATE]
1. xmlUpdater now supports multiple models in one xml model file. 2. xmlUpdater now supports removing xml nodes (using action="remove" attribute). 3. combined stylesLexerModel.xml, and stylesGlobalModel.xml to stylesModel.xml. 4. added a new file "stylers_remove.xml" for removing old deprecated styles from stylers.xml when upgrading NPP. git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository@448 f5eea248-9336-0410-98b8-ebc06183d4e3
This commit is contained in:
parent
defd2ae4e0
commit
741cd58e61
@ -342,23 +342,24 @@ GLOBAL_INST:
|
||||
SetOutPath "$TEMP\"
|
||||
File "langsModel.xml"
|
||||
File "configModel.xml"
|
||||
File "stylesLexerModel.xml"
|
||||
File "stylesGlobalModel.xml"
|
||||
File "stylesModel.xml"
|
||||
|
||||
File "..\bin\langs.model.xml"
|
||||
File "..\bin\config.model.xml"
|
||||
File "..\bin\stylers.model.xml"
|
||||
File "..\bin\stylers_remove.xml"
|
||||
|
||||
;UPGRATE $INSTDIR\langs.xml
|
||||
nsExec::ExecToStack '"$TEMP\xmlUpdater.exe" "$TEMP\langsModel.xml" "$TEMP\langs.model.xml" "$INSTDIR\langs.xml"'
|
||||
nsExec::ExecToStack '"$TEMP\xmlUpdater.exe" "$TEMP\configModel.xml" "$TEMP\config.model.xml" "$UPDATE_PATH\config.xml"'
|
||||
nsExec::ExecToStack '"$TEMP\xmlUpdater.exe" "$TEMP\stylesLexerModel.xml" "$TEMP\stylers.model.xml" "$UPDATE_PATH\stylers.xml"'
|
||||
nsExec::ExecToStack '"$TEMP\xmlUpdater.exe" "$TEMP\stylesGlobalModel.xml" "$TEMP\stylers.model.xml" "$UPDATE_PATH\stylers.xml"'
|
||||
nsExec::ExecToStack '"$TEMP\xmlUpdater.exe" "$TEMP\stylesModel.xml" "$TEMP\stylers_remove.xml" "$UPDATE_PATH\stylers.xml"'
|
||||
nsExec::ExecToStack '"$TEMP\xmlUpdater.exe" "$TEMP\stylesModel.xml" "$TEMP\stylers.model.xml" "$UPDATE_PATH\stylers.xml"'
|
||||
|
||||
SetOutPath "$INSTDIR\"
|
||||
File "..\bin\langs.model.xml"
|
||||
File "..\bin\config.model.xml"
|
||||
File "..\bin\stylers.model.xml"
|
||||
File "..\bin\stylers_remove.xml"
|
||||
|
||||
SetOverwrite off
|
||||
File /oname=$INSTDIR\langs.xml "..\bin\langs.model.xml"
|
||||
@ -972,6 +973,7 @@ Section Uninstall
|
||||
Delete "$INSTDIR\langs.model.xml"
|
||||
Delete "$INSTDIR\stylers.xml"
|
||||
Delete "$INSTDIR\stylers.model.xml"
|
||||
Delete "$INSTDIR\stylers_remove.xml"
|
||||
Delete "$INSTDIR\contextMenu.xml"
|
||||
Delete "$INSTDIR\shortcuts.xml"
|
||||
Delete "$INSTDIR\nativeLang.xml"
|
||||
|
17
PowerEditor/src/tools/xmlUpdater/stylers_remove.xml
Normal file
17
PowerEditor/src/tools/xmlUpdater/stylers_remove.xml
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="Windows-1252" ?>
|
||||
<NotepadPlus>
|
||||
<LexerStyles>
|
||||
<LexerType name="searchResult" desc="Search result" ext="">
|
||||
<WordsStyle name="DEFAULT" action="remove" />
|
||||
<WordsStyle name="HEARDER" action="remove" />
|
||||
<WordsStyle name="NUMBER" action="remove" />
|
||||
<WordsStyle name="HIT WORD" action="remove" />
|
||||
<WordsStyle name="KEYWORD1" action="remove" />
|
||||
<WordsStyle name="KEYWORD2" action="remove" />
|
||||
<WordsStyle name="SEARCH HEADER" action="remove" />
|
||||
<WordsStyle name="FILE HEADER" action="remove" />
|
||||
<WordsStyle name="LINE NUMBER" action="remove" />
|
||||
<WordsStyle name="SELECTED LINE" action="remove" />
|
||||
</LexerType>
|
||||
</LexerStyles>
|
||||
</NotepadPlus>
|
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="Windows-1252" ?>
|
||||
<Node nodeName="NotepadPlus">
|
||||
<Node nodeName="LexerStyles">
|
||||
<Node nodeName="LexerType" name="name"/>
|
||||
</Node>
|
||||
</Node>
|
||||
|
@ -1,5 +1,10 @@
|
||||
<?xml version="1.0" encoding="Windows-1252" ?>
|
||||
<Node nodeName="NotepadPlus">
|
||||
<Node nodeName="LexerStyles">
|
||||
<Node nodeName="LexerType" name="name">
|
||||
<Node nodeName="WordsStyle" name="name"/>
|
||||
</Node>
|
||||
</Node>
|
||||
<Node nodeName="GlobalStyles">
|
||||
<Node nodeName="WidgetStyle" name="name" />
|
||||
</Node>
|
@ -64,33 +64,31 @@ static bool isInList(const char *token2Find, char *list2Clean) {
|
||||
};
|
||||
|
||||
|
||||
int update(TiXmlNode *modelNode, TiXmlNode *srcNode, TiXmlNode *destNode) {
|
||||
void update(TiXmlNode *modelNode, TiXmlNode *srcNode, TiXmlNode *destNode) {
|
||||
TiXmlNode *srcChildNode = NULL;
|
||||
TiXmlNode *destChildNode = NULL;
|
||||
TiXmlNode *modelChildNode = modelNode->FirstChild("Node");
|
||||
|
||||
if (!modelChildNode)
|
||||
return 0;
|
||||
if (!srcNode) return;
|
||||
|
||||
for (modelChildNode = modelNode->FirstChild("Node");
|
||||
modelChildNode;
|
||||
modelChildNode = modelChildNode->NextSibling("Node"))
|
||||
{
|
||||
const char *nodeName = (modelChildNode->ToElement())->Attribute("nodeName");
|
||||
const char *name = (modelChildNode->ToElement())->Attribute("name");
|
||||
if (nodeName)
|
||||
{
|
||||
if (!srcNode)
|
||||
return 0;
|
||||
srcChildNode = srcNode->FirstChild(nodeName);
|
||||
if (!srcChildNode)
|
||||
throw int(4);
|
||||
if (!srcChildNode) continue;
|
||||
|
||||
destChildNode = destNode->FirstChild(nodeName);
|
||||
if (!destChildNode)
|
||||
{
|
||||
//Insertion
|
||||
destNode->InsertEndChild(*srcChildNode);
|
||||
return 0;
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (name && name[0])
|
||||
{
|
||||
srcChildNode = srcNode->FirstChild(nodeName);
|
||||
@ -99,7 +97,13 @@ int update(TiXmlNode *modelNode, TiXmlNode *srcNode, TiXmlNode *destNode) {
|
||||
const char *attrib = (srcChildNode->ToElement())->Attribute(name);
|
||||
if (attrib)
|
||||
{
|
||||
const char *action = (srcChildNode->ToElement())->Attribute("action");
|
||||
bool remove = false;
|
||||
bool found = false;
|
||||
|
||||
if (action && !strcmp(action, "remove"))
|
||||
remove = true;
|
||||
|
||||
destChildNode = destNode->FirstChild(nodeName);
|
||||
while (destChildNode)
|
||||
{
|
||||
@ -111,23 +115,24 @@ int update(TiXmlNode *modelNode, TiXmlNode *srcNode, TiXmlNode *destNode) {
|
||||
}
|
||||
destChildNode = destChildNode->NextSibling(nodeName);
|
||||
}
|
||||
if (!found)
|
||||
if (remove)
|
||||
{
|
||||
// Insertion
|
||||
destNode->InsertEndChild(*srcChildNode);
|
||||
//return 0;
|
||||
if (found) destNode->RemoveChild(destChildNode);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (found)
|
||||
update(modelChildNode, srcChildNode, destChildNode);
|
||||
else
|
||||
destNode->InsertEndChild(*srcChildNode);
|
||||
}
|
||||
}
|
||||
srcChildNode = srcChildNode->NextSibling(nodeName);
|
||||
} // while srcChildNode
|
||||
}
|
||||
}
|
||||
update(modelChildNode, srcChildNode, destChildNode);
|
||||
}
|
||||
}
|
||||
return update(modelChildNode, srcChildNode, destChildNode);
|
||||
};
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user