wxString::IsSameAs(char) added and documented as well as operator==(char)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2799 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 1999-06-15 22:30:44 +00:00
parent 51d55e1c0c
commit f33fee2ae6
2 changed files with 31 additions and 7 deletions

View File

@ -642,7 +642,18 @@ caseSensitive is TRUE by default (case matters).
Returns TRUE if strings are equal, FALSE otherwise.
See also \helpref{Cmp}{wxstringcmp}, \helpref{CmpNoCase}{wxstringcmpnocase}.
See also \helpref{Cmp}{wxstringcmp}, \helpref{CmpNoCase}{wxstringcmpnocase}, \helpref{IsSameAs}{wxstringissameas2}
\membersection{wxString::IsSameAs}\label{wxstringissameas2}
\constfunc{bool}{IsSameAs}{\param{char}{ c}, \param{bool}{ caseSensitive = TRUE}}
Test whether the string is equal to the single character {\it c}. The test is
case-sensitive if {\it caseSensitive} is TRUE (default) or not if it is FALSE.
Returns TRUE if the string is equal to the character, FALSE otherwise.
See also \helpref{Cmp}{wxstringcmp}, \helpref{CmpNoCase}{wxstringcmpnocase}, \helpref{IsSameAs}{wxstringissameas}
\membersection{wxString::IsWord}\label{wxstringisword}

View File

@ -572,13 +572,19 @@ public:
// string comparison
// case-sensitive comparison (returns a value < 0, = 0 or > 0)
int Cmp(const wxChar *psz) const { return wxStrcmp(c_str(), psz); }
int Cmp(const wxChar *psz) const { return wxStrcmp(c_str(), psz); }
// same as Cmp() but not case-sensitive
int CmpNoCase(const wxChar *psz) const { return wxStricmp(c_str(), psz); }
int CmpNoCase(const wxChar *psz) const { return wxStricmp(c_str(), psz); }
// test for the string equality, either considering case or not
// (if compareWithCase then the case matters)
bool IsSameAs(const wxChar *psz, bool compareWithCase = TRUE) const
{ return (compareWithCase ? Cmp(psz) : CmpNoCase(psz)) == 0; }
// comparison with a signle character: returns TRUE if equal
bool IsSameAs(wxChar c, bool compareWithCase = TRUE) const
{
return (Len() == 1) && (compareWithCase ? GetChar(0u) == c
: wxToupper(GetChar(0u)) == wxToupper(c));
}
// simple sub-string extraction
// return substring starting at nFirst of length nCount (or till the end
@ -993,6 +999,7 @@ private:
// ---------------------------------------------------------------------------
// wxString comparison functions: operator versions are always case sensitive
// ---------------------------------------------------------------------------
//
inline bool operator==(const wxString& s1, const wxString& s2) { return (s1.Cmp(s2) == 0); }
//
@ -1030,16 +1037,22 @@ inline bool operator>=(const wxString& s1, const wxChar * s2) { return (s1.Cmp(
//
inline bool operator>=(const wxChar * s1, const wxString& s2) { return (s2.Cmp(s1) <= 0); }
// comparison with char
inline bool operator==(wxChar c, const wxString& s) { return s.IsSameAs(c); }
inline bool operator==(const wxString& s, wxChar c) { return s.IsSameAs(c); }
inline bool operator!=(wxChar c, const wxString& s) { return !s.IsSameAs(c); }
inline bool operator!=(const wxString& s, wxChar c) { return !s.IsSameAs(c); }
#if wxUSE_UNICODE
inline bool operator==(const wxString& s1, const wxWCharBuffer& s2)
{ return (s1.Cmp((const wchar_t *)s2) == 0); }
{ return (s1.Cmp((const wchar_t *)s2) == 0); }
inline bool operator==(const wxWCharBuffer& s1, const wxString& s2)
{ return (s2.Cmp((const wchar_t *)s1) == 0); }
{ return (s2.Cmp((const wchar_t *)s1) == 0); }
#else
inline bool operator==(const wxString& s1, const wxCharBuffer& s2)
{ return (s1.Cmp((const char *)s2) == 0); }
{ return (s1.Cmp((const char *)s2) == 0); }
inline bool operator==(const wxCharBuffer& s1, const wxString& s2)
{ return (s2.Cmp((const char *)s1) == 0); }
{ return (s2.Cmp((const char *)s1) == 0); }
#endif
wxString WXDLLEXPORT operator+(const wxString& string1, const wxString& string2);