From 96a4e5615fe86cfb40d0ce6539d0358fa7089c40 Mon Sep 17 00:00:00 2001 From: Sven Hesse Date: Fri, 6 Oct 2023 01:57:32 +0200 Subject: [PATCH] Test --- src/xml/xmlparser.cpp | 32 ++++++-------------------------- 1 file changed, 6 insertions(+), 26 deletions(-) diff --git a/src/xml/xmlparser.cpp b/src/xml/xmlparser.cpp index e5180a2b..182c7971 100644 --- a/src/xml/xmlparser.cpp +++ b/src/xml/xmlparser.cpp @@ -39,13 +39,10 @@ namespace XML { -thread_local Common::UString kParseError; static void errorFuncUString(void *ctx, const char *msg, ...) { Common::UString *str = static_cast(ctx); assert(str); - fprintf(stderr, "!!1 %d\n", STRINGBUFLEN); - char buf[STRINGBUFLEN]; va_list va; @@ -53,7 +50,6 @@ static void errorFuncUString(void *ctx, const char *msg, ...) { vsnprintf(buf, STRINGBUFLEN, msg, va); va_end(va); - fprintf(stderr, "!!2 %s\n", buf); *str += buf; } @@ -80,54 +76,38 @@ static void deinitXML() { XMLParser::XMLParser(Common::ReadStream &stream, bool makeLower, const Common::UString &fileName) { - fprintf(stderr, "FOO1\n"); initXML(); - BOOST_SCOPE_EXIT(void) { - fprintf(stderr, "FOO13\n"); deinitXML(); - fprintf(stderr, "FOO14\n"); } BOOST_SCOPE_EXIT_END - fprintf(stderr, "FOO2\n"); - - //kParseError.clear(); - //xmlSetGenericErrorFunc(static_cast(&kParseError), errorFuncUString); + Common::UString parseError; + xmlSetGenericErrorFunc(static_cast(&parseError), errorFuncUString); - fprintf(stderr, "FOO3\n"); const int options = XML_PARSE_NOWARNING | XML_PARSE_NOBLANKS | XML_PARSE_NONET | XML_PARSE_NSCLEAN | XML_PARSE_NOCDATA; - fprintf(stderr, "FOO4\n"); xmlDocPtr xml = xmlReadIO(readStream, closeStream, static_cast(&stream), fileName.c_str(), 0, options); - fprintf(stderr, "FOO5\n"); if (!xml) { Common::Exception e; + if (!parseError.empty()) + e.add("%s", parseError.c_str()); + e.add("XML document failed to parse"); - fprintf(stderr, "FOO5.1\n"); throw e; } - fprintf(stderr, "FOO6\n"); BOOST_SCOPE_EXIT( (&xml) ) { - fprintf(stderr, "FOO7\n"); xmlFreeDoc(xml); - fprintf(stderr, "FOO8\n"); } BOOST_SCOPE_EXIT_END - fprintf(stderr, "FOO9\n"); xmlNodePtr root = xmlDocGetRootElement(xml); - fprintf(stderr, "FOO10\n"); - if (!root) { - fprintf(stderr, "FOO10.1\n"); + if (!root) throw Common::Exception("XML document has no root node"); - } - fprintf(stderr, "FOO11\n"); _rootNode.reset(new XMLNode(*root, makeLower)); - fprintf(stderr, "FOO12\n"); } XMLParser::~XMLParser() {