]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/string.h
1. warnings suppressed in wave.cpp
[wxWidgets.git] / include / wx / string.h
index 20149977f0237b8033be05e5ec4be3c58e24b0f5..6a966ae6fc145884ace65e07e04742ca6f7f2966 100644 (file)
@@ -176,24 +176,9 @@ class WXDLLEXPORT wxMBConv
  public:
   virtual size_t MB2WC(wchar_t *buf, const char *psz, size_t n) const;
   virtual size_t WC2MB(char *buf, const wchar_t *psz, size_t n) const;
-  const wxWCharBuffer cMB2WC(const char *psz) const
-    {
-      if (psz) {
-        size_t nLen = MB2WC((wchar_t *) NULL, psz, 0);
-        wxWCharBuffer buf(nLen);
-        MB2WC(WCSTRINGCAST buf, psz, nLen);
-        return buf;
-      } else return wxWCharBuffer((wchar_t *) NULL);
-    }
-  const wxCharBuffer cWC2MB(const wchar_t *psz) const
-    {
-      if (psz) {
-        size_t nLen = WC2MB((char *) NULL, psz, 0);
-        wxCharBuffer buf(nLen);
-        WC2MB(MBSTRINGCAST buf, psz, nLen);
-        return buf;
-      } else return wxCharBuffer((char *) NULL);
-    }
+  // No longer inline since BC++ complains.
+  const wxWCharBuffer cMB2WC(const char *psz) const;
+  const wxCharBuffer cWC2MB(const wchar_t *psz) const;
 #if wxUSE_UNICODE
   const wxWCharBuffer cMB2WX(const char *psz) const { return cMB2WC(psz); }
   const wxCharBuffer cWX2MB(const wchar_t *psz) const { return cWC2MB(psz); }
@@ -221,7 +206,7 @@ WXDLLEXPORT_DATA(extern wxANOTHER_MBCONV(wxMBConvFile)) wxConvFile;
 WXDLLEXPORT_DATA(extern wxANOTHER_MBCONV(wxMBConvUTF7)) wxConvUTF7;
 WXDLLEXPORT_DATA(extern wxANOTHER_MBCONV(wxMBConvUTF8)) wxConvUTF8;
 #define wxConv_UTF8 wxConvUTF8
-#if defined(__WXGTK__) && (GTK_MINOR_VERSION > 0)
+#if defined(__WXGTK12__)
     WXDLLEXPORT_DATA(extern wxANOTHER_MBCONV(wxMBConvGdk)) wxConvGdk;
     #define wxConv_gdk wxConvGdk
 #endif // GTK > 1.0
@@ -263,8 +248,18 @@ WXDLLEXPORT_DATA(extern wxMBConv *) wxConvCurrent;
 #define FNSTRINGCAST WXSTRINGCAST
 #endif
 #else//!wxUSE_WCHAR_T
-class WXDLLEXPORT wxMBConv {};
-WXDLLEXPORT_DATA(extern wxMBConv) wxConvLibc;
+class WXDLLEXPORT wxMBConv {
+public:
+  const char* cMB2WX(const char *psz) const { return psz; }
+  const char* cWX2MB(const char *psz) const { return psz; }
+};
+WXDLLEXPORT_DATA(extern wxMBConv) wxConvLibc, wxConvFile;
+#define wxConv_libc wxConvLibc
+#define wxConv_file wxConvFile
+WXDLLEXPORT_DATA(extern wxMBConv *) wxConvCurrent;
+#define wxConv_current wxConvCurrent
+#define wxFNCONV(name) name
+#define FNSTRINGCAST WXSTRINGCAST
 #endif//wxUSE_WCHAR_T
 
 // ---------------------------------------------------------------------------
@@ -580,7 +575,7 @@ public:
     // case-sensitive comparison (returns a value < 0, = 0 or > 0)
   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 Stricmp(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
@@ -718,6 +713,10 @@ public:
 #ifdef  wxSTD_STRING_COMPATIBILITY
   // std::string compatibility functions
 
+  // standard types
+  typedef wxChar value_type;
+  typedef const value_type *const_iterator;
+
   // an 'invalid' value for string index
   static const size_t npos;
 
@@ -751,6 +750,11 @@ public:
     // returns the writable character at position n
   wxChar& at(size_t n) { return GetWritableChar(n); }
 
+    // first valid index position
+  const_iterator begin() const { return wx_str(); }
+    // position one after the last valid one
+  const_iterator end() const { return wx_str() + length(); }
+
   // lib.string.modifiers
     // append a string
   wxString& append(const wxString& str)
@@ -841,32 +845,37 @@ public:
 
     // find first/last occurence of any character in the set
 
-    //
-  size_t find_first_of(const wxString& str, size_t nStart = 0) const;
-    //
+    // as strpbrk() but starts at nStart, returns npos if not found
+  size_t find_first_of(const wxString& str, size_t nStart = 0) const
+    { return find_first_of(str.c_str(), nStart); }
+    // same as above
   size_t find_first_of(const wxChar* sz, size_t nStart = 0) const;
     // same as find(char, size_t)
-  size_t find_first_of(wxChar c, size_t nStart = 0) const;
-    //
-  size_t find_last_of (const wxString& str, size_t nStart = npos) const;
-    //
-  size_t find_last_of (const wxChar* s, size_t nStart = npos) const;
-    // same as rfind(char, size_t)
-  size_t find_last_of (wxChar c, size_t nStart = npos) const;
+  size_t find_first_of(wxChar c, size_t nStart = 0) const
+    { return find(c, nStart); }
+    // find the last (starting from nStart) char from str in this string
+  size_t find_last_of (const wxString& str, size_t nStart = npos) const
+    { return find_last_of(str.c_str(), nStart); }
+    // same as above
+  size_t find_last_of (const wxChar* sz, size_t nStart = npos) const;
+    // same as above
+  size_t find_last_of(wxChar c, size_t nStart = npos) const
+    { return rfind(c, nStart); }
 
     // find first/last occurence of any character not in the set
 
-    //
-  size_t find_first_not_of(const wxString& str, size_t nStart = 0) const;
-    //
-  size_t find_first_not_of(const wxChar* s, size_t nStart = 0) const;
-    //
+    // as strspn() (starting from nStart), returns npos on failure
+  size_t find_first_not_of(const wxString& str, size_t nStart = 0) const
+    { return find_first_not_of(str.c_str(), nStart); }
+    // same as above
+  size_t find_first_not_of(const wxChar* sz, size_t nStart = 0) const;
+    // same as above
   size_t find_first_not_of(wxChar ch, size_t nStart = 0) const;
-    //
+    //  as strcspn()
   size_t find_last_not_of(const wxString& str, size_t nStart=npos) const;
-    //
-  size_t find_last_not_of(const wxChar* s, size_t nStart = npos) const;
-    //
+    // same as above
+  size_t find_last_not_of(const wxChar* sz, size_t nStart = npos) const;
+    // same as above
   size_t find_last_not_of(wxChar ch, size_t nStart = npos) const;
 
     // All compare functions return -1, 0 or 1 if the [sub]string is less,