// ---------------------------------------------------------------------------- // 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 Str widen(const char *text) { typedef typename Str::value_type Ch; Str 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 { typedef typename Str::value_type Ch; public: xml_writer_settings(Ch inchar = Ch(' '), typename Str::size_type incount = 0, const Str &enc = widen("utf-8")) : indent_char(inchar) , indent_count(incount) , encoding(enc) { } Ch indent_char; typename Str::size_type indent_count; Str encoding; }; template xml_writer_settings xml_writer_make_settings(typename Str::value_type indent_char = (typename Str::value_type)(' '), typename Str::size_type indent_count = 0, const Str &encoding = widen("utf-8")) { return xml_writer_settings(indent_char, indent_count, encoding); } } } } #endif