]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/string.h
internal browser creates temp file in current dir, safer if /tmp doesn't
[wxWidgets.git] / include / wx / string.h
index e88f2e992b91893b01c8f2dca04ba55b23e96bcd..541332d4ae42e655cec9bf6911eb25daa952013b 100644 (file)
@@ -54,7 +54,9 @@
 #define   wxSTD_STRING_COMPATIBILITY
 
 // define to derive wxString from wxObject
+#ifdef    WXSTRING_IS_WXOBJECT
 #undef    WXSTRING_IS_WXOBJECT
+#endif
 
 // maximum possible length for a string means "take all string" everywhere
 //  (as sizeof(StringData) is unknown here we substract 100)
@@ -85,6 +87,8 @@ inline int WXDLLEXPORT Stricmp(const char *psz1, const char *psz2)
   return _stricmp(psz1, psz2);
 #elif     defined(__SC__)
   return _stricmp(psz1, psz2);
+#elif     defined(__SALFORDC__)
+  return stricmp(psz1, psz2);
 #elif defined(__BORLANDC__)
   return stricmp(psz1, psz2);
 #elif defined(__WATCOMC__)
@@ -262,6 +266,8 @@ public:
   size_t Len() const { return GetStringData()->nDataLength; }
     // string contains any characters?
   bool IsEmpty() const { return Len() == 0; }
+    // empty string is "FALSE", so !str will return TRUE
+  bool operator!() const { return IsEmpty(); }
     // empty string contents
   void Empty()
   {
@@ -399,7 +405,7 @@ public:
   wxString& operator<<(float f);
       // insert a double into string
   wxString& operator<<(double d);
-  
+
   // string comparison
     // case-sensitive comparison: return 0 if =, +1 if > or -1 if <
   int  Cmp(const char *psz) const { return strcmp(c_str(), psz); }
@@ -437,14 +443,19 @@ public:
   wxString AfterLast(char ch) const;
 
     // for compatibility only, use more explicitly named functions above
-  wxString Before(char ch) const { return BeforeLast(ch); } 
-  wxString After(char ch) const { return AfterFirst(ch); } 
+  wxString Before(char ch) const { return BeforeLast(ch); }
+  wxString After(char ch) const { return AfterFirst(ch); }
 
   // case conversion
-      // convert to upper case, return the string itself
+      // convert to upper case in place, return the string itself
   wxString& MakeUpper();
-      // convert to lower case, return the string itself
+      // convert to upper case, return the copy of the string
+      // Here's something to remember: BC++ doesn't like returns in inlines.
+  wxString Upper() const ;
+      // convert to lower case in place, return the string itself
   wxString& MakeLower();
+      // convert to lower case, return the copy of the string
+  wxString Lower() const ;
 
   // trimming/padding whitespace (either side) and truncating
       // remove spaces from left or from right (default) side
@@ -496,15 +507,9 @@ public:
   enum caseCompare {exact, ignoreCase};
     // values for first parameter of Strip function
   enum stripType {leading = 0x1, trailing = 0x2, both = 0x3};
+
     // use Printf()
-  inline int sprintf(const char *pszFormat, ...)
-  {
-    va_list argptr;
-    va_start(argptr, pszFormat);
-    int iLen = PrintfV(pszFormat, argptr);
-    va_end(argptr);
-    return iLen;
-  }
+  int sprintf(const char *pszFormat, ...);
 
     // use Cmp()
   inline int CompareTo(const char* psz, caseCompare cmp = exact) const
@@ -801,41 +806,41 @@ private:
 // wxString comparison functions: operator versions are always case sensitive
 // ---------------------------------------------------------------------------
 //
-inline bool operator==(const wxString& s1, const wxString& s2) { return s1.Cmp(s2) == 0; }
+inline bool operator==(const wxString& s1, const wxString& s2) { return (s1.Cmp(s2) == 0); }
 //
-inline bool operator==(const wxString& s1, const char  * s2) { return s1.Cmp(s2) == 0; }
+inline bool operator==(const wxString& s1, const char  * s2) { return (s1.Cmp(s2) == 0); }
 //
-inline bool operator==(const char  * s1, const wxString& s2) { return s2.Cmp(s1) == 0; }
+inline bool operator==(const char  * s1, const wxString& s2) { return (s2.Cmp(s1) == 0); }
 //
-inline bool operator!=(const wxString& s1, const wxString& s2) { return s1.Cmp(s2) != 0; }
+inline bool operator!=(const wxString& s1, const wxString& s2) { return (s1.Cmp(s2) != 0); }
 //
-inline bool operator!=(const wxString& s1, const char  * s2) { return s1.Cmp(s2) != 0; }
+inline bool operator!=(const wxString& s1, const char  * s2) { return (s1.Cmp(s2) != 0); }
 //
-inline bool operator!=(const char  * s1, const wxString& s2) { return s2.Cmp(s1) != 0; }
+inline bool operator!=(const char  * s1, const wxString& s2) { return (s2.Cmp(s1) != 0); }
 //
-inline bool operator< (const wxString& s1, const wxString& s2) { return s1.Cmp(s2) <  0; }
+inline bool operator< (const wxString& s1, const wxString& s2) { return (s1.Cmp(s2) < 0); }
 //
-inline bool operator< (const wxString& s1, const char  * s2) { return s1.Cmp(s2) <  0; }
+inline bool operator< (const wxString& s1, const char  * s2) { return (s1.Cmp(s2) <  0); }
 //
-inline bool operator< (const char  * s1, const wxString& s2) { return s2.Cmp(s1) >  0; }
+inline bool operator< (const char  * s1, const wxString& s2) { return (s2.Cmp(s1) >  0); }
 //
-inline bool operator> (const wxString& s1, const wxString& s2) { return s1.Cmp(s2) >  0; }
+inline bool operator> (const wxString& s1, const wxString& s2) { return (s1.Cmp(s2) >  0); }
 //
-inline bool operator> (const wxString& s1, const char  * s2) { return s1.Cmp(s2) >  0; }
+inline bool operator> (const wxString& s1, const char  * s2) { return (s1.Cmp(s2) >  0); }
 //
-inline bool operator> (const char  * s1, const wxString& s2) { return s2.Cmp(s1) <  0; }
+inline bool operator> (const char  * s1, const wxString& s2) { return (s2.Cmp(s1) <  0); }
 //
-inline bool operator<=(const wxString& s1, const wxString& s2) { return s1.Cmp(s2) <= 0; }
+inline bool operator<=(const wxString& s1, const wxString& s2) { return (s1.Cmp(s2) <= 0); }
 //
-inline bool operator<=(const wxString& s1, const char  * s2) { return s1.Cmp(s2) <= 0; }
+inline bool operator<=(const wxString& s1, const char  * s2) { return (s1.Cmp(s2) <= 0); }
 //
-inline bool operator<=(const char  * s1, const wxString& s2) { return s2.Cmp(s1) >= 0; }
+inline bool operator<=(const char  * s1, const wxString& s2) { return (s2.Cmp(s1) >= 0); }
 //
-inline bool operator>=(const wxString& s1, const wxString& s2) { return s1.Cmp(s2) >= 0; }
+inline bool operator>=(const wxString& s1, const wxString& s2) { return (s1.Cmp(s2) >= 0); }
 //
-inline bool operator>=(const wxString& s1, const char  * s2) { return s1.Cmp(s2) >= 0; }
+inline bool operator>=(const wxString& s1, const char  * s2) { return (s1.Cmp(s2) >= 0); }
 //
-inline bool operator>=(const char  * s1, const wxString& s2) { return s2.Cmp(s1) <= 0; }
+inline bool operator>=(const char  * s1, const wxString& s2) { return (s2.Cmp(s1) <= 0); }
 
 wxString WXDLLEXPORT operator+(const wxString& string1,  const wxString& string2);
 wxString WXDLLEXPORT operator+(const wxString& string, char ch);