// ---------------------------------------------------------------------------- // Copyright (C) 2002-2007 Marcin Kalicinski // Copyright (C) 2007 Alexey Baskakov // // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) // // For more information, see www.boost.org // ---------------------------------------------------------------------------- #ifndef BOOST_PROPERTY_TREE_DETAIL_XML_PARSER_WRITER_SETTINGS_HPP_INCLUDED #define BOOST_PROPERTY_TREE_DETAIL_XML_PARSER_WRITER_SETTINGS_HPP_INCLUDED #include #include namespace boost { namespace property_tree { namespace xml_parser { // Naively convert narrow string to another character type template std::basic_string widen(const char *text) { std::basic_string result; while (*text) { result += Ch(*text); ++text; } return result; } //! Xml writer settings. The default settings lead to no pretty printing. template class xml_writer_settings { public: xml_writer_settings(Ch inchar = Ch(' '), typename std::basic_string::size_type incount = 0, const std::basic_string &enc = widen("utf-8")) : indent_char(inchar) , indent_count(incount) , encoding(enc) { } Ch indent_char; typename std::basic_string::size_type indent_count; std::basic_string encoding; }; template xml_writer_settings xml_writer_make_settings(Ch indent_char = Ch(' '), typename std::basic_string::size_type indent_count = 0, const std::basic_string &encoding = widen("utf-8")) { return xml_writer_settings(indent_char, indent_count, encoding); } } } } #endif