From: Vadim Zeitlin Date: Tue, 15 Jun 1999 22:30:44 +0000 (+0000) Subject: wxString::IsSameAs(char) added and documented as well as operator==(char) X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/f33fee2ae6f5b5a2e8403fb037bd79072e973542 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 --- diff --git a/docs/latex/wx/wxstring.tex b/docs/latex/wx/wxstring.tex index 092f1eccee..5aa5d9d4a5 100644 --- a/docs/latex/wx/wxstring.tex +++ b/docs/latex/wx/wxstring.tex @@ -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} diff --git a/include/wx/string.h b/include/wx/string.h index 2f25942e18..471681315b 100644 --- a/include/wx/string.h +++ b/include/wx/string.h @@ -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);