]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/string.h
1. wxMSW seems to work (please test and send your bug reports!)
[wxWidgets.git] / include / wx / string.h
index 442cd0fee0484a6d7645bd4893e3d9c361d88f14..c3992d5f47e02dd591bf12229fee884f52675d78 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); }
@@ -264,6 +249,7 @@ WXDLLEXPORT_DATA(extern wxMBConv *) wxConvCurrent;
 #endif
 #else//!wxUSE_WCHAR_T
 class WXDLLEXPORT wxMBConv {
+public:
   const char* cMB2WX(const char *psz) const { return psz; }
   const char* cWX2MB(const char *psz) const { return psz; }
 };
@@ -850,32 +836,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,