Imported Upstream version 1.57.0
[platform/upstream/boost.git] / tools / quickbook / src / utils.hpp
index 9170f81..3f5c545 100644 (file)
 #include <ostream>
 #include <boost/range/algorithm_ext/push_back.hpp>
 #include <boost/range/adaptor/transformed.hpp>
+#include <boost/utility/string_ref.hpp>
 
 namespace quickbook { namespace detail {
+    std::string encode_string(boost::string_ref);
     void print_char(char ch, std::ostream& out);
-    void print_string(std::basic_string<char> const& str, std::ostream& out);
+    void print_string(boost::string_ref str, std::ostream& out);
     char filter_identifier_char(char ch);
 
     template <typename Range>
@@ -32,7 +34,21 @@ namespace quickbook { namespace detail {
         return out_name;
     }
 
+    // URI escape string
     std::string escape_uri(std::string uri);
+    inline std::string escape_uri(boost::string_ref uri) {
+        return escape_uri(std::string(uri.begin(), uri.end()));
+    }
+
+    // URI escape string, leaving characters generally used in URIs.
+    std::string partially_escape_uri(std::string uri);
+    inline std::string partially_escape_uri(boost::string_ref uri) {
+        return escape_uri(std::string(uri.begin(), uri.end()));
+    }
+
+    inline std::string to_s(boost::string_ref x) {
+        return std::string(x.begin(), x.end());
+    }
 }}
 
 #endif // BOOST_SPIRIT_QUICKBOOK_UTILS_HPP