implemented wxMBConv::IsUTF8() helper for more classes so that all uses of UTF-8 are detected and optimized in wxString

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46265 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík 2007-06-02 12:42:57 +00:00
parent 1d5fda5dc6
commit ba98e032a7
2 changed files with 36 additions and 0 deletions

View File

@ -223,6 +223,10 @@ public:
return m_conv->GetMBNulLen();
}
#if wxUSE_UNICODE_UTF8
virtual bool IsUTF8() const { return m_conv->IsUTF8(); }
#endif
virtual wxMBConv *Clone() const { return new wxConvBrokenFileNames(*this); }
private:
@ -399,6 +403,10 @@ public:
virtual size_t WC2MB(char *outputBuf, const wchar_t *psz, size_t outputSize) const;
virtual size_t GetMBNulLen() const;
#if wxUSE_UNICODE_UTF8
virtual bool IsUTF8() const;
#endif
virtual wxMBConv *Clone() const { return new wxCSConv(*this); }
void Clear();

View File

@ -1597,6 +1597,10 @@ public:
// classify this encoding as explained in wxMBConv::GetMBNulLen() comment
virtual size_t GetMBNulLen() const;
#if wxUSE_UNICODE_UTF8
virtual bool IsUTF8() const;
#endif
virtual wxMBConv *Clone() const
{
wxMBConv_iconv *p = new wxMBConv_iconv(m_name);
@ -1975,6 +1979,14 @@ size_t wxMBConv_iconv::GetMBNulLen() const
return m_minMBCharWidth;
}
#if wxUSE_UNICODE_UTF8
bool wxMBConv_iconv::IsUTF8() const
{
return wxStricmp(m_name, "UTF-8") == 0 ||
wxStricmp(m_name, "UTF8") == 0;
}
#endif
#endif // HAVE_ICONV
@ -3613,9 +3625,25 @@ size_t wxCSConv::GetMBNulLen() const
return m_convReal->GetMBNulLen();
}
// otherwise, we are ISO-8859-1
return 1;
}
#if wxUSE_UNICODE_UTF8
bool wxCSConv::IsUTF8() const
{
CreateConvIfNeeded();
if ( m_convReal )
{
return m_convReal->IsUTF8();
}
// otherwise, we are ISO-8859-1
return false;
}
#endif
#if wxUSE_UNICODE