]> git.sesse.net Git - xml-template/blobdiff - c++0x/xml-template.cpp
Tweak C++0x API a bit, to prepare for include. Also, output to stdout instead of...
[xml-template] / c++0x / xml-template.cpp
index 30e5a7e1e3f96a6d740ebefdb68ea1c2d1c6bfb4..e8fc0edb086678d12ebea5eddc04fe355478d7e9 100644 (file)
@@ -196,17 +196,21 @@ void Substitute::process(xmlNode *node, bool clean)
        }
 }
        
-void process_file(const string &input_filename,
-                  const string &output_filename,
-                  Directive *root_directive)
+xmlDocPtr process_file(const string &input_filename,
+                       Directive *root_directive)
 {
        LIBXML_TEST_VERSION
 
        xmlDocPtr doc = xmlParseFile(input_filename.c_str());
        root_directive->process(xmlDocGetRootElement(doc), true);
-       xmlSaveFile(output_filename.c_str(), doc);
-       xmlFreeDoc(doc);
-
        xmlCleanupParser();
        xmlMemoryDump();
+       return doc;
+}
+
+void output_to_fd_and_free(xmlDocPtr doc, int fd)
+{
+       xmlOutputBufferPtr buf = xmlOutputBufferCreateFd(fd, NULL);
+       xmlSaveFileTo(buf, doc, NULL);
+       xmlFreeDoc(doc);
 }