diff options
Diffstat (limited to 'src/util.cc')
| -rw-r--r-- | src/util.cc | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/util.cc b/src/util.cc index df79fb26..d5b6cb9f 100644 --- a/src/util.cc +++ b/src/util.cc @@ -55,6 +55,7 @@ #include <openssl/sha.h> #include <boost/filesystem.hpp> #include <boost/algorithm/string.hpp> +#include <boost/foreach.hpp> #include <stdexcept> #include <iostream> #include <iomanip> @@ -348,3 +349,30 @@ dcp::openjpeg_version () { return opj_version (); } + +string +dcp::spaces (int n) +{ + string s = ""; + for (int i = 0; i < n; ++i) { + s += " "; + } + return s; +} + +void +dcp::indent (xmlpp::Element* element, int initial) +{ + xmlpp::Node* last = 0; + BOOST_FOREACH (xmlpp::Node * n, element->get_children()) { + xmlpp::Element* e = dynamic_cast<xmlpp::Element*>(n); + if (e) { + element->add_child_text_before (e, "\n" + spaces(initial + 2)); + indent (e, initial + 2); + last = n; + } + } + if (last) { + element->add_child_text (last, "\n" + spaces(initial)); + } +} |
