Merged some functions in sf::String

git-svn-id: https://sfml.svn.sourceforge.net/svnroot/sfml/branches/sfml2@1807 4e206d99-4929-0410-ac5d-dfc041789085
This commit is contained in:
laurentgom 2011-03-19 19:49:16 +00:00
parent 8651a38e14
commit f3d212f737
2 changed files with 8 additions and 109 deletions

View File

@ -63,30 +63,17 @@ public :
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
String(); String();
////////////////////////////////////////////////////////////
/// \brief Construct from a single ANSI character
///
/// The source character is converted to UTF-32 according
/// to the current locale. See the other constructor for
/// explicitely passing the locale to use.
///
/// \param ansiChar ANSI character to convert
///
////////////////////////////////////////////////////////////
String(char ansiChar);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Construct from a single ANSI character and a locale /// \brief Construct from a single ANSI character and a locale
/// ///
/// The source character is converted to UTF-32 according /// The source character is converted to UTF-32 according
/// to the given locale. If you want to use the current global /// to the given locale.
/// locale, rather use the other constructor.
/// ///
/// \param ansiChar ANSI character to convert /// \param ansiChar ANSI character to convert
/// \param locale Locale to use for conversion /// \param locale Locale to use for conversion
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
String(char ansiChar, const std::locale& locale); String(char ansiChar, const std::locale& locale = std::locale());
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Construct from single wide character /// \brief Construct from single wide character
@ -104,55 +91,29 @@ public :
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
String(Uint32 utf32Char); String(Uint32 utf32Char);
////////////////////////////////////////////////////////////
/// \brief Construct from a null-terminated C-style ANSI string
///
/// The source string is converted to UTF-32 according
/// to the current locale. See the other constructor for
/// explicitely passing the locale to use.
///
/// \param ansiString ANSI string to convert
///
////////////////////////////////////////////////////////////
String(const char* ansiString);
////////////////////////////////////////////////////////////
/// \brief Construct from an ANSI string
///
/// The source string is converted to UTF-32 according
/// to the current global locale. See the other constructor for
/// explicitely passing the locale to use.
///
/// \param ansiString ANSI string to convert
///
////////////////////////////////////////////////////////////
String(const std::string& ansiString);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Construct from a null-terminated C-style ANSI string and a locale /// \brief Construct from a null-terminated C-style ANSI string and a locale
/// ///
/// The source string is converted to UTF-32 according /// The source string is converted to UTF-32 according
/// to the given locale. If you want to use the current global /// to the given locale.
/// locale, rather use the other constructor.
/// ///
/// \param ansiString ANSI string to convert /// \param ansiString ANSI string to convert
/// \param locale Locale to use for conversion /// \param locale Locale to use for conversion
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
String(const char* ansiString, const std::locale& locale); String(const char* ansiString, const std::locale& locale = std::locale());
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Construct from an ANSI string and a locale /// \brief Construct from an ANSI string and a locale
/// ///
/// The source string is converted to UTF-32 according /// The source string is converted to UTF-32 according
/// to the given locale. If you want to use the current global /// to the given locale.
/// locale, rather use the other constructor.
/// ///
/// \param ansiString ANSI string to convert /// \param ansiString ANSI string to convert
/// \param locale Locale to use for conversion /// \param locale Locale to use for conversion
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
String(const std::string& ansiString, const std::locale& locale); String(const std::string& ansiString, const std::locale& locale = std::locale());
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Construct from null-terminated C-style wide string /// \brief Construct from null-terminated C-style wide string
@ -226,29 +187,11 @@ public :
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
operator std::wstring() const; operator std::wstring() const;
////////////////////////////////////////////////////////////
/// \brief Convert the unicode string to an ANSI string
///
/// The current global locale is used for conversion. If you
/// want to explicitely specify a locale, see the other overload
/// of ToAnsiString.
/// Characters that do not fit in the target encoding are
/// discarded from the returned string.
///
/// \return Converted ANSI string
///
/// \see ToWideString, operator std::string
///
////////////////////////////////////////////////////////////
std::string ToAnsiString() const;
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Convert the unicode string to an ANSI string /// \brief Convert the unicode string to an ANSI string
/// ///
/// The UTF-32 string is converted to an ANSI string in /// The UTF-32 string is converted to an ANSI string in
/// the encoding defined by \a locale. If you want to use /// the encoding defined by \a locale.
/// the current global locale, see the other overload
/// of ToAnsiString.
/// Characters that do not fit in the target encoding are /// Characters that do not fit in the target encoding are
/// discarded from the returned string. /// discarded from the returned string.
/// ///
@ -259,7 +202,7 @@ public :
/// \see ToWideString, operator std::string /// \see ToWideString, operator std::string
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
std::string ToAnsiString(const std::locale& locale) const; std::string ToAnsiString(const std::locale& locale = std::locale()) const;
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Convert the unicode string to a wide string /// \brief Convert the unicode string to a wide string

View File

@ -43,13 +43,6 @@ String::String()
} }
////////////////////////////////////////////////////////////
String::String(char ansiChar)
{
myString += Utf32::DecodeAnsi(ansiChar);
}
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
String::String(char ansiChar, const std::locale& locale) String::String(char ansiChar, const std::locale& locale)
{ {
@ -71,29 +64,6 @@ String::String(Uint32 utf32Char)
} }
////////////////////////////////////////////////////////////
String::String(const char* ansiString)
{
if (ansiString)
{
std::size_t length = strlen(ansiString);
if (length > 0)
{
myString.reserve(length + 1);
Utf32::FromAnsi(ansiString, ansiString + length, std::back_inserter(myString));
}
}
}
////////////////////////////////////////////////////////////
String::String(const std::string& ansiString)
{
myString.reserve(ansiString.length() + 1);
Utf32::FromAnsi(ansiString.begin(), ansiString.end(), std::back_inserter(myString));
}
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
String::String(const char* ansiString, const std::locale& locale) String::String(const char* ansiString, const std::locale& locale)
{ {
@ -176,20 +146,6 @@ String::operator std::wstring() const
} }
////////////////////////////////////////////////////////////
std::string String::ToAnsiString() const
{
// Prepare the output string
std::string output;
output.reserve(myString.length() + 1);
// Convert
Utf32::ToAnsi(myString.begin(), myString.end(), std::back_inserter(output), 0);
return output;
}
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
std::string String::ToAnsiString(const std::locale& locale) const std::string String::ToAnsiString(const std::locale& locale) const
{ {