summaryrefslogtreecommitdiffstats
path: root/Source/CPack/WiX/cmWIXPatchParser.h
diff options
context:
space:
mode:
authorNils Gladitz <nilsgladitz@gmail.com>2015-10-12 19:53:08 (GMT)
committerNils Gladitz <nilsgladitz@gmail.com>2015-10-12 19:53:08 (GMT)
commit5a266095ee778fb700c067c55ff0b59777a72c50 (patch)
tree5b714661965f0787330de044fc4e196f4b54b90f /Source/CPack/WiX/cmWIXPatchParser.h
parente5fb30fb5bdff2913cc9382649984da89e882b25 (diff)
downloadCMake-5a266095ee778fb700c067c55ff0b59777a72c50.zip
CMake-5a266095ee778fb700c067c55ff0b59777a72c50.tar.gz
CMake-5a266095ee778fb700c067c55ff0b59777a72c50.tar.bz2
CPackWIX: Handle text nodes in XML patch content
Diffstat (limited to 'Source/CPack/WiX/cmWIXPatchParser.h')
-rw-r--r--Source/CPack/WiX/cmWIXPatchParser.h29
1 files changed, 27 insertions, 2 deletions
diff --git a/Source/CPack/WiX/cmWIXPatchParser.h b/Source/CPack/WiX/cmWIXPatchParser.h
index acfb4c0..acaeae3 100644
--- a/Source/CPack/WiX/cmWIXPatchParser.h
+++ b/Source/CPack/WiX/cmWIXPatchParser.h
@@ -20,11 +20,33 @@
#include <map>
#include <list>
-struct cmWIXPatchElement
+struct cmWIXPatchNode
{
+ enum Type
+ {
+ TEXT,
+ ELEMENT
+ };
+
+ virtual ~cmWIXPatchNode();
+
+ virtual Type type() = 0;
+};
+
+struct cmWIXPatchText : public cmWIXPatchNode
+{
+ virtual Type type();
+
+ std::string text;
+};
+
+struct cmWIXPatchElement : cmWIXPatchNode
+{
+ virtual Type type();
+
~cmWIXPatchElement();
- typedef std::list<cmWIXPatchElement*> child_list_t;
+ typedef std::list<cmWIXPatchNode*> child_list_t;
typedef std::map<std::string, std::string> attributes_t;
std::string name;
@@ -48,6 +70,9 @@ private:
void StartFragment(const char **attributes);
virtual void EndElement(const std::string& name);
+
+ virtual void CharacterDataHandler(const char* data, int length);
+
virtual void ReportError(int line, int column, const char* msg);
void ReportValidationError(std::string const& message);