]> git.lyx.org Git - lyx.git/blobdiff - src/support/strfwd.h
correct format for unsigned long argument, remoteCloseLink is oneway void
[lyx.git] / src / support / strfwd.h
index b21631821527a6d66f886c5d640aa056a8455d7d..069357ff9cbdd5258e3b4b1927c5dbe77926e765 100644 (file)
 #ifndef STRFWD_H
 #define STRFWD_H
 
-namespace std {
-
-template<typename Char> struct char_traits;
-template<> struct char_traits<char>;
-template<> struct char_traits<wchar_t>;
-
-template<typename Alloc> class allocator;
-
-template<typename Char, typename Traits, typename Alloc> class basic_string;
-
-typedef basic_string<char, char_traits<char>, allocator<char> > string;
-
-}
-
-
 #ifdef USE_WCHAR_T
 
 // Prefer this if possible because GNU libstdc++ has usable
@@ -39,79 +24,54 @@ namespace lyx { typedef wchar_t char_type; }
 #else
 
 #include <boost/cstdint.hpp>
-namepace lyx { typedef boost::uint32_t char_type; }
+namespace lyx { typedef boost::uint32_t char_type; }
 
 #endif
 
 
-namespace lyx {
-
-typedef std::basic_string<char_type, std::char_traits<char_type>,
-       std::allocator<char_type> > docstring;
-
-/// Creates a docstring from a C string of ASCII characters
-docstring const from_ascii(char const *);
-
-/// Creates a docstring from a std::string of ASCII characters
-docstring const from_ascii(std::string const &);
-
-/// Creates a std::string of ASCII characters from a docstring
-std::string const to_ascii(docstring const &);
-
-/// Creates a docstring from a UTF8 string. This should go eventually.
-docstring const from_utf8(std::string const &);
-
-/// Creates a UTF8 string from a docstring. This should go eventually.
-std::string const to_utf8(docstring const &);
-
-/// convert \p s from the encoding of the locale to ucs4.
-docstring const from_local8bit(std::string const & s);
-
-/**
- * Convert \p s from ucs4 to the encoding of the locale.
- * This may fail and throw an exception, the caller is expected to act
- * appropriately.
- */
-std::string const to_local8bit(docstring const & s);
+namespace std {
 
-/// convert \p s from the encoding of the file system to ucs4.
-docstring const from_filesystem8bit(std::string const & s);
+template<typename Alloc> class allocator;
 
-/// convert \p s from ucs4 to the encoding of the file system.
-std::string const to_filesystem8bit(docstring const & s);
+template<typename Char> struct char_traits;
+template<> struct char_traits<char>;
+#ifdef USE_WCHAR_T
+template<> struct char_traits<wchar_t>;
+#endif
 
-/// normalize \p s to precomposed form c
-docstring const normalize_c(docstring const & s);
+template<typename Char, typename Traits, typename Alloc> class basic_string;
+typedef basic_string<char, char_traits<char>, allocator<char> > string;
 
-/// Compare a docstring with a C string of ASCII characters
-bool operator==(docstring const &, char const *);
+template<class Char, class Traits> class basic_istream;
+template<class Char, class Traits> class basic_ostream;
 
-/// Compare a C string of ASCII characters with a docstring
-inline bool operator==(char const * l, docstring const & r) { return r == l; }
+typedef basic_istream<char, char_traits<char> > istream;
+typedef basic_ostream<char, char_traits<char> > ostream;
 
-/// Compare a docstring with a C string of ASCII characters
-inline bool operator!=(docstring const & l, char const * r) { return !(l == r); }
+} // namepace std
 
-/// Compare a C string of ASCII characters with a docstring
-inline bool operator!=(char const * l, docstring const & r) { return !(r == l); }
 
-/// Concatenate a docstring and a C string of ASCII characters
-docstring operator+(docstring const &, char const *);
+namespace lyx {
 
-/// Concatenate a C string of ASCII characters and a docstring
-docstring operator+(char const *, docstring const &);
+/// String type for storing the main text in UCS4 encoding
+typedef std::basic_string<char_type, std::char_traits<char_type>,
+       std::allocator<char_type> > docstring;
 
-/// Concatenate a docstring and a single ASCII character
-docstring operator+(docstring const & l, char r);
+/// Base class for UCS4 input streams
+typedef std::basic_istream<char_type, std::char_traits<char_type> > idocstream;
 
-/// Concatenate a single ASCII character and a docstring
-docstring operator+(char l, docstring const & r);
+/// Base class for UCS4 output streams
+typedef std::basic_ostream<char_type, std::char_traits<char_type> > odocstream;
 
-/// Append a C string of ASCII characters to a docstring
-docstring & operator+=(docstring &, char const *);
+#if ! defined(USE_WCHAR_T)
+extern odocstream & operator<<(odocstream &, char);
+#endif
 
-/// Append a single ASCII character to a docstring
-docstring & operator+=(docstring & l, char r);
+// defined in lstrings.cpp
+docstring const & empty_docstring();
+std::string const & empty_string();
+// defined in docstring.cpp
+bool operator==(docstring const &, char const *);
 
 } // namespace lyx