diff options
Diffstat (limited to 'src/utils/xml')
-rw-r--r-- | src/utils/xml/libxml.h | 37 | ||||
-rw-r--r-- | src/utils/xml/libxml.inc | 62 | ||||
-rw-r--r-- | src/utils/xml/pugixml.h | 30 | ||||
-rw-r--r-- | src/utils/xml/pugixml.inc | 55 |
4 files changed, 121 insertions, 63 deletions
diff --git a/src/utils/xml/libxml.h b/src/utils/xml/libxml.h index 6d8c35cab..49968123e 100644 --- a/src/utils/xml/libxml.h +++ b/src/utils/xml/libxml.h @@ -28,6 +28,8 @@ #include "enums/simpletypes/skiperror.h" #include "enums/simpletypes/useresman.h" +#include "utils/xml/libxml.inc" + #include <libxml/tree.h> #include <libxml/xmlwriter.h> @@ -35,41 +37,6 @@ #include "localconsts.h" -#define XmlNodePtr xmlNodePtr -#define XmlNodePtrConst xmlNode *const -#define XmlStrEqual(str1, str2) xmlStrEqual(str1, \ - reinterpret_cast<const xmlChar*>(str2)) -#define xmlNameEqual(node, str) xmlStrEqual((node)->name, \ - reinterpret_cast<const xmlChar*>(str)) -#define XmlTextWriterPtr xmlTextWriterPtr -#define xmlTypeEqual(node, typ) ((node)->type == (typ)) -#define XmlHasProp(node, name) (xmlHasProp(node, \ - reinterpret_cast<const xmlChar*>(name)) != nullptr) -#define XmlGetProp(node, name) xmlGetProp(node, \ - reinterpret_cast<const xmlChar*>(name)) -#define XmlTextWriterStartElement(writer, name) \ - xmlTextWriterStartElement(writer, reinterpret_cast<const xmlChar*>(name)) -#define XmlTextWriterEndElement(writer) xmlTextWriterEndElement(writer) -#define XmlTextWriterWriteAttribute(writer, name, content) \ - xmlTextWriterWriteAttribute(writer, \ - reinterpret_cast<const xmlChar*>(name), \ - reinterpret_cast<const xmlChar*>(content)) -#define XmlNodeGetContent(node) xmlNodeGetContent(node) -#define XmlNewTextWriterFilename(name, flags) \ - xmlNewTextWriterFilename(name, flags) -#define XmlTextWriterSetIndent(writer, flags) \ - xmlTextWriterSetIndent(writer, flags) -#define XmlTextWriterStartDocument(writer, p1, p2, p3) \ - xmlTextWriterStartDocument(writer, p1, p2, p3) -#define XmlTextWriterEndDocument(writer) xmlTextWriterEndDocument(writer) -#define XmlFreeTextWriter(writer) xmlFreeTextWriter(writer) -#define XmlHaveChildContent(node) ((node)->xmlChildrenNode != nullptr && \ - (node)->xmlChildrenNode->content != nullptr) -#define XmlChildContent(node) reinterpret_cast<const char*>(\ - (node)->xmlChildrenNode->content) -#define XmlFree(ptr) xmlFree(ptr) -#define XmlNodeDefault nullptr - /** * XML helper functions. */ diff --git a/src/utils/xml/libxml.inc b/src/utils/xml/libxml.inc new file mode 100644 index 000000000..238eafec9 --- /dev/null +++ b/src/utils/xml/libxml.inc @@ -0,0 +1,62 @@ +/* + * The ManaPlus Client + * Copyright (C) 2011-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef UTILS_XML_LIBXML_INC +#define UTILS_XML_LIBXML_INC + +#ifdef ENABLE_LIBXML + +#define XmlNodePtr xmlNodePtr +#define XmlNodePtrConst xmlNode *const +#define XmlStrEqual(str1, str2) xmlStrEqual(str1, \ + reinterpret_cast<const xmlChar*>(str2)) +#define xmlNameEqual(node, str) xmlStrEqual((node)->name, \ + reinterpret_cast<const xmlChar*>(str)) +#define XmlTextWriterPtr xmlTextWriterPtr +#define xmlTypeEqual(node, typ) ((node)->type == (typ)) +#define XmlHasProp(node, name) (xmlHasProp(node, \ + reinterpret_cast<const xmlChar*>(name)) != nullptr) +#define XmlGetProp(node, name) xmlGetProp(node, \ + reinterpret_cast<const xmlChar*>(name)) +#define XmlTextWriterStartElement(writer, name) \ + xmlTextWriterStartElement(writer, reinterpret_cast<const xmlChar*>(name)) +#define XmlTextWriterEndElement(writer) xmlTextWriterEndElement(writer) +#define XmlTextWriterWriteAttribute(writer, name, content) \ + xmlTextWriterWriteAttribute(writer, \ + reinterpret_cast<const xmlChar*>(name), \ + reinterpret_cast<const xmlChar*>(content)) +#define XmlNodeGetContent(node) xmlNodeGetContent(node) +#define XmlNewTextWriterFilename(name, flags) \ + xmlNewTextWriterFilename(name, flags) +#define XmlTextWriterSetIndent(writer, flags) \ + xmlTextWriterSetIndent(writer, flags) +#define XmlTextWriterStartDocument(writer, p1, p2, p3) \ + xmlTextWriterStartDocument(writer, p1, p2, p3) +#define XmlTextWriterEndDocument(writer) xmlTextWriterEndDocument(writer) +#define XmlFreeTextWriter(writer) xmlFreeTextWriter(writer) +#define XmlHaveChildContent(node) ((node)->xmlChildrenNode != nullptr && \ + (node)->xmlChildrenNode->content != nullptr) +#define XmlChildContent(node) reinterpret_cast<const char*>(\ + (node)->xmlChildrenNode->content) +#define XmlFree(ptr) xmlFree(ptr) +#define XmlNodeDefault nullptr + +#endif // ENABLE_LIBXML +#endif // UTILS_XML_LIBXML_INC diff --git a/src/utils/xml/pugixml.h b/src/utils/xml/pugixml.h index 57e0cccd3..105f56959 100644 --- a/src/utils/xml/pugixml.h +++ b/src/utils/xml/pugixml.h @@ -28,40 +28,14 @@ #include "enums/simpletypes/skiperror.h" #include "enums/simpletypes/useresman.h" +#include "utils/xml/pugixml.inc" + #include <pugixml.hpp> #include <string> #include "localconsts.h" -#define XML_ELEMENT_NODE pugi::node_element - -#define XmlNodePtr pugi::xml_node -#define XmlNodePtrConst pugi::xml_node -#define xmlNameEqual(node, str) !strcmp((node).name(), str) -#define xmlTypeEqual(node, typ) ((node).type() == (typ)) -#define XmlHasProp(node, name) (!((node).attribute(name).empty())) -#define XmlHaveChildContent(node) ((node).child_value() != nullptr && \ - *(node).child_value()) -#define XmlChildContent(node) (node).child_value() -#define xmlChar char -#define XmlFree(ptr) -#define XmlNodeDefault pugi::xml_node() - -// +++ need impliment get context -#define XmlNodeGetContent(node) (node).child_value() - -// +++ need impliment writing code -#define XmlTextWriterPtr pugi::xml_writer* -#define XmlTextWriterStartElement(writer, name) -#define XmlTextWriterEndElement(writer) -#define XmlTextWriterWriteAttribute(writer, name, content) -#define XmlNewTextWriterFilename(name, flags) nullptr; -#define XmlTextWriterSetIndent(writer, flags) -#define XmlTextWriterStartDocument(writer, p1, p2, p3) -#define XmlTextWriterEndDocument(writer) -#define XmlFreeTextWriter(writer) - /** * XML helper functions. */ diff --git a/src/utils/xml/pugixml.inc b/src/utils/xml/pugixml.inc new file mode 100644 index 000000000..4350a8e71 --- /dev/null +++ b/src/utils/xml/pugixml.inc @@ -0,0 +1,55 @@ +/* + * The ManaPlus Client + * Copyright (C) 2011-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef UTILS_XML_PUGIXML_INC +#define UTILS_XML_PUGIXML_INC + +#ifdef ENABLE_PUGIXML + +#define XML_ELEMENT_NODE pugi::node_element + +#define XmlNodePtr pugi::xml_node +#define XmlNodePtrConst pugi::xml_node +#define xmlNameEqual(node, str) !strcmp((node).name(), str) +#define xmlTypeEqual(node, typ) ((node).type() == (typ)) +#define XmlHasProp(node, name) (!((node).attribute(name).empty())) +#define XmlHaveChildContent(node) ((node).child_value() != nullptr && \ + *(node).child_value()) +#define XmlChildContent(node) (node).child_value() +#define xmlChar char +#define XmlFree(ptr) +#define XmlNodeDefault pugi::xml_node() + +// +++ need impliment get context +#define XmlNodeGetContent(node) (node).child_value() + +// +++ need impliment writing code +#define XmlTextWriterPtr pugi::xml_writer* +#define XmlTextWriterStartElement(writer, name) +#define XmlTextWriterEndElement(writer) +#define XmlTextWriterWriteAttribute(writer, name, content) +#define XmlNewTextWriterFilename(name, flags) nullptr; +#define XmlTextWriterSetIndent(writer, flags) +#define XmlTextWriterStartDocument(writer, p1, p2, p3) +#define XmlTextWriterEndDocument(writer) +#define XmlFreeTextWriter(writer) + +#endif // ENABLE_PUGIXML +#endif // UTILS_XML_PUGIXML_INC |