X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Futil.cc;fp=src%2Futil.cc;h=d5b6cb9f4eaeed6ccc33a493ea6766eac9389446;hb=5ad493e6900f621284748fe50b3f60f67929ffc2;hp=df79fb26e1a3dc52dba989c3718889b0fc48715f;hpb=a266fc223ecb7a696fa9dc35422ef0264b1c3c40;p=libdcp.git 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 #include #include +#include #include #include #include @@ -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(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)); + } +}