]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/wxcrt.cpp
Update compile support for OpenVMS
[wxWidgets.git] / src / common / wxcrt.cpp
index db16fa9b18d762c8de933d51ffc6883be76b700b..dc51b48e41a7c00179e417ae63bf5bd8c9954dad 100644 (file)
@@ -81,7 +81,6 @@ using namespace std ;
     #include <xlocale.h>
 #endif
 
     #include <xlocale.h>
 #endif
 
-#if wxUSE_WCHAR_T
 WXDLLIMPEXP_BASE size_t wxMB2WC(wchar_t *buf, const char *psz, size_t n)
 {
   // assume that we have mbsrtowcs() too if we have wcsrtombs()
 WXDLLIMPEXP_BASE size_t wxMB2WC(wchar_t *buf, const char *psz, size_t n)
 {
   // assume that we have mbsrtowcs() too if we have wcsrtombs()
@@ -141,7 +140,6 @@ WXDLLIMPEXP_BASE size_t wxWC2MB(char *buf, const wchar_t *pwz, size_t n)
   return wxWcstombs(NULL, pwz, 0);
 #endif
 }
   return wxWcstombs(NULL, pwz, 0);
 #endif
 }
-#endif // wxUSE_WCHAR_T
 
 char* wxSetlocale(int category, const char *locale)
 {
 
 char* wxSetlocale(int category, const char *locale)
 {
@@ -588,13 +586,20 @@ namespace
 #if !wxUSE_UTF8_LOCALE_ONLY
 int ConvertStringToBuf(const wxString& s, char *out, size_t outsize)
 {
 #if !wxUSE_UTF8_LOCALE_ONLY
 int ConvertStringToBuf(const wxString& s, char *out, size_t outsize)
 {
-    const wxWX2WCbuf buf = s.wc_str();
+    const wxCharBuffer buf(s.mb_str());
 
 
-    size_t len = wxConvLibc.FromWChar(out, outsize, buf);
-    if ( len != wxCONV_FAILED )
-        return len-1;
-    else
-        return wxConvLibc.FromWChar(NULL, 0, buf);
+    const size_t len = buf.length();
+    if ( outsize > len )
+    {
+        memcpy(out, buf, (len+1) * sizeof(char));
+    }
+    else // not enough space
+    {
+        memcpy(out, buf, (outsize-1) * sizeof(char));
+        out[outsize-1] = '\0';
+    }
+
+    return len;
 }
 #endif // !wxUSE_UTF8_LOCALE_ONLY
 
 }
 #endif // !wxUSE_UTF8_LOCALE_ONLY
 
@@ -735,7 +740,6 @@ int wxVsnprintf(wchar_t *str, size_t size, const wxString& format, va_list argpt
 }
 #endif // wxUSE_UNICODE
 
 }
 #endif // wxUSE_UNICODE
 
-#if wxUSE_WCHAR_T
 
 // ----------------------------------------------------------------------------
 // ctype.h stuff (currently unused)
 
 // ----------------------------------------------------------------------------
 // ctype.h stuff (currently unused)
@@ -953,8 +957,6 @@ wxCRT_StrftimeW(wchar_t *s, size_t maxsize, const wchar_t *fmt, const struct tm
 }
 #endif // !wxCRT_StrftimeW
 
 }
 #endif // !wxCRT_StrftimeW
 
-#endif // wxUSE_WCHAR_T
-
 #ifdef wxLongLong_t
 template<typename T>
 static wxULongLong_t
 #ifdef wxLongLong_t
 template<typename T>
 static wxULongLong_t
@@ -1109,7 +1111,7 @@ wxULongLong_t wxCRT_StrtoullW(const wchar_t* nptr, wchar_t** endptr, int base)
 #endif // wxLongLong_t
 
 // ----------------------------------------------------------------------------
 #endif // wxLongLong_t
 
 // ----------------------------------------------------------------------------
-// functions which we may need even if !wxUSE_WCHAR_T
+// strtok() functions
 // ----------------------------------------------------------------------------
 
 template<typename T>
 // ----------------------------------------------------------------------------
 
 template<typename T>