X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fsupport%2Fstrfwd.h;h=069357ff9cbdd5258e3b4b1927c5dbe77926e765;hb=de6ff1fec2b918a0bd09f48b17a2770bfc15aef7;hp=b21631821527a6d66f886c5d640aa056a8455d7d;hpb=a5263e0f927034885870a65053ef3908d1c6f885;p=lyx.git diff --git a/src/support/strfwd.h b/src/support/strfwd.h index b216318215..069357ff9c 100644 --- a/src/support/strfwd.h +++ b/src/support/strfwd.h @@ -13,21 +13,6 @@ #ifndef STRFWD_H #define STRFWD_H -namespace std { - -template struct char_traits; -template<> struct char_traits; -template<> struct char_traits; - -template class allocator; - -template class basic_string; - -typedef basic_string, allocator > 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 -namepace lyx { typedef boost::uint32_t char_type; } +namespace lyx { typedef boost::uint32_t char_type; } #endif -namespace lyx { - -typedef std::basic_string, - std::allocator > 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 class allocator; -/// convert \p s from ucs4 to the encoding of the file system. -std::string const to_filesystem8bit(docstring const & s); +template struct char_traits; +template<> struct char_traits; +#ifdef USE_WCHAR_T +template<> struct char_traits; +#endif -/// normalize \p s to precomposed form c -docstring const normalize_c(docstring const & s); +template class basic_string; +typedef basic_string, allocator > string; -/// Compare a docstring with a C string of ASCII characters -bool operator==(docstring const &, char const *); +template class basic_istream; +template 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 > istream; +typedef basic_ostream > 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, + std::allocator > 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 > 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 > 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