Batch #1247 by eAthena: 0 byte-identical, 5 confirmed by peer review. - fn_18298 XmlNode::Text: logic confirmed by peer review - fn_18299 XmlNode::DecodeEntity: logic confirmed by peer review - fn_18300 XmlDocument::TerminateName: logic confirmed by peer review - fn_18301 XmlDocument::ParseElements: logic confirmed by peer review - fn_18302 XmlDocument::Parse: logic confirmed by peer review Peer-reviewed-by: ragnarok-clanker Reviewed-by: ragnarok-clanker Adds to the build: Source/Resource/XmlParsing.cpp
39 lines
995 B
C++
39 lines
995 B
C++
#ifndef RAGNAROK_SOURCE_RESOURCE_XMLNODE_H
|
|
#define RAGNAROK_SOURCE_RESOURCE_XMLNODE_H
|
|
|
|
#include <cstdint>
|
|
#include <string>
|
|
|
|
struct XmlNode {
|
|
explicit XmlNode(const char* name);
|
|
~XmlNode();
|
|
XmlNode* AppendSibling(XmlNode* node);
|
|
void Clear();
|
|
XmlNode* FindChild(const char* name);
|
|
XmlNode* FindSibling(const char* name);
|
|
const std::string& Text();
|
|
std::string DecodeEntity(const char* begin, const char* end);
|
|
|
|
/* 0000 */ const char* name;
|
|
/* 0004 */ char* unknown_0004;
|
|
/* 0008 */ char* unknown_0008;
|
|
/* 000C */ std::string text;
|
|
/* 0024 */ XmlNode* sibling;
|
|
/* 0028 */ XmlNode* child;
|
|
};
|
|
|
|
struct XmlDocument : XmlNode {
|
|
void Reset();
|
|
char* TerminateName(char* begin, char* end);
|
|
char* ParseElements(XmlNode* parent, char* cursor, char* end);
|
|
bool Parse(const char* begin, const char* end);
|
|
|
|
/* 002C */ void* buffer;
|
|
};
|
|
|
|
#if defined(_WIN32) && !defined(_WIN64)
|
|
static_assert(sizeof(XmlNode) == 44);
|
|
static_assert(sizeof(XmlDocument) == 48);
|
|
#endif
|
|
|
|
#endif
|