]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/string.h
compilation fix for !MSVC
[wxWidgets.git] / include / wx / string.h
index b9319c6b7ab9db972d804c531de54daf2549ebd7..1c6dbc1f0b6a49201c5ae4278dff38e6c8a165dc 100644 (file)
@@ -18,7 +18,7 @@
 #ifndef _WX_WXSTRINGH__
 #define _WX_WXSTRINGH__
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
     #pragma interface "string.h"
 #endif
 
@@ -165,17 +165,6 @@ inline int Stricmp(const char *psz1, const char *psz2)
 #endif  // OS/compiler
 }
 
-// wxSnprintf() is like snprintf() if it's available and sprintf() (always
-// available, but dangerous!) if not
-extern int WXDLLEXPORT wxSnprintf(wxChar *buf, size_t len,
-                                  const wxChar *format,
-                                  ...) ATTRIBUTE_PRINTF_3;
-
-// and wxVsnprintf() is like vsnprintf() or vsprintf()
-extern int WXDLLEXPORT wxVsnprintf(wxChar *buf, size_t len,
-                                   const wxChar *format,
-                                   va_list argptr);
-
 // return an empty wxString
 class WXDLLEXPORT wxString; // not yet defined
 inline const wxString& wxGetEmptyString() { return *(wxString *)&wxEmptyString; }
@@ -457,13 +446,28 @@ public:
 
     // implicit conversion to C string
     operator const wxChar*() const { return m_pchData; }
+
     // explicit conversion to C string (use this with printf()!)
     const wxChar* c_str()   const { return m_pchData; }
-    // identical to c_str()
+    // identical to c_str(), for wxWin 1.6x compatibility
     const wxChar* wx_str()  const { return m_pchData; }
-    // identical to c_str()
+    // identical to c_str(), for MFC compatibility
     const wxChar* GetData() const { return m_pchData; }
 
+    // conversion to/from plain (i.e. 7 bit) ASCII: this is useful for
+    // converting numbers or strings which are certain not to contain special
+    // chars (typically system functions, X atoms, environment variables etc.)
+    //
+    // the behaviour of these functions with the strings containing anything
+    // else than 7 bit ASCII characters is undefined, use at your own risk.
+#if wxUSE_UNICODE
+    static wxString FromAscii(const char *ascii);
+    const wxCharBuffer ToAscii() const;
+#else // ANSI
+    static wxString FromAscii(const char *ascii) { return wxString( ascii ); }
+    const char *ToAscii() const { return c_str(); }
+#endif // Unicode/!Unicode
+
     // conversions with (possible) format convertions: have to return a
     // buffer with temporary data
     //
@@ -1146,20 +1150,20 @@ public:
 
 class WXDLLEXPORT wxStringBuffer
 {
-    DECLARE_NO_COPY_CLASS(wxStringBuffer)
-    
 public:
     wxStringBuffer(wxString& str, size_t lenWanted = 1024)
         : m_str(str), m_buf(NULL)
         { m_buf = m_str.GetWriteBuf(lenWanted); }
-    
+
     ~wxStringBuffer() { m_str.UngetWriteBuf(); }
-    
+
     operator wxChar*() const { return m_buf; }
-    
+
 private:
     wxString& m_str;
     wxChar   *m_buf;
+
+    DECLARE_NO_COPY_CLASS(wxStringBuffer)
 };
 
 // ---------------------------------------------------------------------------