]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/strconv.h
Rebake from clean wx tree.
[wxWidgets.git] / include / wx / strconv.h
index cf538d1491ee437533c452d0f77966fa3ec30589..0847360a8f364e1873ed5e5a4a96357287799128 100644 (file)
@@ -36,10 +36,6 @@ class WXDLLIMPEXP_FWD_BASE wxString;
 // the error value returned by wxMBConv methods
 #define wxCONV_FAILED ((size_t)-1)
 
 // the error value returned by wxMBConv methods
 #define wxCONV_FAILED ((size_t)-1)
 
-// the default value for some length parameters meaning that the string is
-// NUL-terminated
-#define wxNO_LEN ((size_t)-1)
-
 // ----------------------------------------------------------------------------
 // wxMBConv (abstract base class for conversions)
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 // wxMBConv (abstract base class for conversions)
 // ----------------------------------------------------------------------------
@@ -65,19 +61,21 @@ public:
     // there is not enough space for everything, including the trailing NUL
     // character(s), in the output buffer, wxCONV_FAILED is returned.
     //
     // there is not enough space for everything, including the trailing NUL
     // character(s), in the output buffer, wxCONV_FAILED is returned.
     //
-    // In the special case when dstLen is 0 (outputBuf may be NULL then) the
-    // return value is the length of the needed buffer but nothing happens
-    // otherwise. If srcLen is wxNO_LEN, the entire string, up to and
+    // In the special case when dst is NULL (the value of dstLen is ignored
+    // then) the return value is the length of the needed buffer but nothing
+    // happens otherwise. If srcLen is wxNO_LEN, the entire string, up to and
     // including the trailing NUL(s), is converted, otherwise exactly srcLen
     // bytes are.
     //
     // Typical usage:
     //
     //          size_t dstLen = conv.ToWChar(NULL, 0, src);
     // including the trailing NUL(s), is converted, otherwise exactly srcLen
     // bytes are.
     //
     // Typical usage:
     //
     //          size_t dstLen = conv.ToWChar(NULL, 0, src);
-    //          if ( dstLen != wxCONV_FAILED )
+    //          if ( dstLen == wxCONV_FAILED )
     //              ... handle error ...
     //          wchar_t *wbuf = new wchar_t[dstLen];
     //          conv.ToWChar(wbuf, dstLen, src);
     //              ... handle error ...
     //          wchar_t *wbuf = new wchar_t[dstLen];
     //          conv.ToWChar(wbuf, dstLen, src);
+    //          ... work with wbuf ...
+    //          delete [] wbuf;
     //
     virtual size_t ToWChar(wchar_t *dst, size_t dstLen,
                            const char *src, size_t srcLen = wxNO_LEN) const;
     //
     virtual size_t ToWChar(wchar_t *dst, size_t dstLen,
                            const char *src, size_t srcLen = wxNO_LEN) const;
@@ -112,6 +110,12 @@ public:
     const wxCharBuffer
         cWC2MB(const wchar_t *in, size_t inLen, size_t *outLen) const;
 
     const wxCharBuffer
         cWC2MB(const wchar_t *in, size_t inLen, size_t *outLen) const;
 
+    // And yet more convenience functions for converting the entire buffers:
+    // these are the simplest and least error-prone as you never need to bother
+    // with lengths/sizes directly.
+    const wxWCharBuffer cMB2WC(const wxScopedCharBuffer& in) const;
+    const wxCharBuffer cWC2MB(const wxScopedWCharBuffer& in) const;
+
     // convenience functions for converting MB or WC to/from wxWin default
 #if wxUSE_UNICODE
     const wxWCharBuffer cMB2WX(const char *psz) const { return cMB2WC(psz); }
     // convenience functions for converting MB or WC to/from wxWin default
 #if wxUSE_UNICODE
     const wxWCharBuffer cMB2WX(const char *psz) const { return cMB2WC(psz); }