]> git.saurik.com Git - wxWidgets.git/commitdiff
wxString::IsSameAs(char) added and documented as well as operator==(char)
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 15 Jun 1999 22:30:44 +0000 (22:30 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 15 Jun 1999 22:30:44 +0000 (22:30 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2799 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/wxstring.tex
include/wx/string.h

index 092f1eccee13af201f2d9553062b1ddeb0794260..5aa5d9d4a57b68680a96fcd50260d976d20eb165 100644 (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}
 
index 2f25942e18d5e7fe904564ad5c705eea9289d95e..471681315b5b1f65d1225ed719e332d372f3bf7e 100644 (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);