#pragma once #include #include #include #include namespace nix { using std::string; using std::map; using std::list; typedef map XMLAttrs; class XMLWriter { private: std::ostream & output; bool indent; bool closed; list pendingElems; public: XMLWriter(bool indent, std::ostream & output); ~XMLWriter(); void close(); void openElement(const string & name, const XMLAttrs & attrs = XMLAttrs()); void closeElement(); void writeEmptyElement(const string & name, const XMLAttrs & attrs = XMLAttrs()); private: void writeAttrs(const XMLAttrs & attrs); void indent_(unsigned int depth); }; class XMLOpenElement { private: XMLWriter & writer; public: XMLOpenElement(XMLWriter & writer, const string & name, const XMLAttrs & attrs = XMLAttrs()) : writer(writer) { writer.openElement(name, attrs); } ~XMLOpenElement() { writer.closeElement(); } }; } r> aboutsummaryrefslogtreecommitdiff
AgeCommit message (Expand)Author
2020-12-11build: 'script/guix' uses our own 'guile' executable....* Makefile.am (do_subst): Substitute @abs_top_builddir@. * scripts/guix.in: Use it. Ludovic Courtès