lib/expat/ExpatParser: add constructor overload for XML_ParserCreateNS()
This commit is contained in:
		@@ -38,6 +38,10 @@ public:
 | 
				
			|||||||
		:ExpatError(XML_GetErrorCode(parser)) {}
 | 
							:ExpatError(XML_GetErrorCode(parser)) {}
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct ExpatNamespaceSeparator {
 | 
				
			||||||
 | 
						char separator;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class ExpatParser final {
 | 
					class ExpatParser final {
 | 
				
			||||||
	const XML_Parser parser;
 | 
						const XML_Parser parser;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -47,6 +51,11 @@ public:
 | 
				
			|||||||
		XML_SetUserData(parser, userData);
 | 
							XML_SetUserData(parser, userData);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ExpatParser(ExpatNamespaceSeparator ns, void *userData)
 | 
				
			||||||
 | 
							:parser(XML_ParserCreateNS(nullptr, ns.separator)) {
 | 
				
			||||||
 | 
							XML_SetUserData(parser, userData);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	~ExpatParser() {
 | 
						~ExpatParser() {
 | 
				
			||||||
		XML_ParserFree(parser);
 | 
							XML_ParserFree(parser);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -89,6 +98,12 @@ public:
 | 
				
			|||||||
		parser.SetCharacterDataHandler(CharacterData);
 | 
							parser.SetCharacterDataHandler(CharacterData);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						explicit CommonExpatParser(ExpatNamespaceSeparator ns)
 | 
				
			||||||
 | 
							:parser(ns, this) {
 | 
				
			||||||
 | 
							parser.SetElementHandler(StartElement, EndElement);
 | 
				
			||||||
 | 
							parser.SetCharacterDataHandler(CharacterData);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	void Parse(const char *data, size_t length, bool is_final) {
 | 
						void Parse(const char *data, size_t length, bool is_final) {
 | 
				
			||||||
		parser.Parse(data, length, is_final);
 | 
							parser.Parse(data, length, is_final);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user