Clean-up: modernize pretty_xml.cpp
[lttng-tools.git] / tests / utils / xml-utils / pretty_xml.cpp
index 7eb4710caf78dcc02c285800a4af02a57b48718a..8a6e967a71da8c73c687fcf6c3cec23d88ce4fad 100644 (file)
 
 #include "common.hpp"
 
+#include <common/scope-exit.hpp>
+
+#include <iostream>
 #include <libxml/parser.h>
 #include <unistd.h>
 
+namespace ll = lttng::libxml;
+
 int main()
 {
-       xmlDocPtr doc = NULL;
-
-       /* Init libxml. */
-       xmlInitParser();
-
-       {
-               xml_parser_ctx_uptr parserCtx{ xmlNewParserCtxt() };
-
-               /* Parse the XML document from stdin. */
-               doc = xmlCtxtReadFd(
-                       parserCtx.get(), STDIN_FILENO, nullptr, nullptr, XML_PARSE_NOBLANKS);
-               if (!doc) {
-                       fprintf(stderr, "ERR parsing: xml input invalid");
-                       return -1;
-               }
-
-               xmlDocFormatDump(stdout, doc, 1);
-
-               xmlFreeDoc(doc);
+       const ll::global_parser_context global_parser_context;
+       const ll::parser_ctx_uptr parserCtx{ xmlNewParserCtxt() };
+
+       /* Parse the XML document from stdin. */
+       const ll::doc_uptr doc{ xmlCtxtReadFd(
+               parserCtx.get(), STDIN_FILENO, nullptr, nullptr, XML_PARSE_NOBLANKS) };
+       if (!doc) {
+               std::cerr << "Error: invalid XML input on stdin\n";
+               return -1;
        }
 
-       /* Shutdown libxml. */
-       xmlCleanupParser();
+       xmlDocFormatDump(stdout, doc.get(), 1);
 
        return 0;
 }
This page took 0.024651 seconds and 4 git commands to generate.