// call in wxStrcoll_String<T>()), so we have to forward-declare the template
// and implement it below WX_STRCMP_FUNC. OTOH, this fails to compile with VC6,
// so we do it for GCC only.
-#ifdef __GNUG__
+// The same is needed for HP CXX on OpenVMS
+#if defined( __GNUG__ ) || defined( __VMS )
template<typename T>
inline int wxStrcoll_String(const wxString& s1, const T& s2);
WX_STRCMP_FUNC(wxStrcoll, wxCRT_StrcollA, wxCRT_StrcollW, wxStrcoll_String)
-#endif // __GNUG__
+#endif // __GNUG__ or __VMS
template<typename T>
inline int wxStrcoll_String(const wxString& s1, const T& s2)
#endif
}
-#ifndef __GNUG__
+#if !defined( __GNUG__ ) && !defined( __VMS )
// this is exactly the same WX_STRCMP_FUNC line as above wxStrcoll_String<>
WX_STRCMP_FUNC(wxStrcoll, wxCRT_StrcollA, wxCRT_StrcollW, wxStrcoll_String)
#endif
/* Almost all compiler have strdup(), but not quite all: CodeWarrior under
Mac and VC++ for Windows CE don't provide it; additionally, gcc under
- Mac doesn't have wcsdup: */
+ Mac and OpenVMS do not have wcsdup: */
#if defined(__VISUALC__) && __VISUALC__ >= 1400
#define wxCRT_StrdupA _strdup
#elif !(defined(__MWERKS__) && defined(__WXMAC__)) && !defined(__WXWINCE__)
#endif
#if defined(__WINDOWS__)
#define wxCRT_StrdupW _wcsdup
- #elif !defined(__DARWIN__)
+ #elif !defined(__DARWIN__) && !defined( __VMS )
#define wxCRT_StrdupW wcsdup
#endif
#else
#define wxCRT_AtolW _wtol
/* _wtof doesn't exist */
#else
+#ifndef __VMS
#define wxCRT_AtofW(s) wcstof(s, NULL)
+#endif
#define wxCRT_AtolW(s) wcstol(s, NULL, 10)
/* wcstoi doesn't exist */
#endif
va_list argptr;
va_start(argptr, format);
- int ret = vwscanf(wxFormatConverter(format), argptr);
-
+#ifdef __VMS
+#if (__DECCXX_VER >= 70100000) && !defined(__STD_CFRONT) && !defined( __NONAMESPACE_STD )
+ int ret = std::vwscanf(wxFormatConverter(format), argptr);
+#else
+ int ret = vwscanf(wxFormatConverter(format), argptr);
+#endif
+#else
+ int ret = vwscanf(wxFormatConverter(format), argptr);
+#endif
+
va_end(argptr);
return ret;
va_list argptr;
va_start(argptr, format);
- int ret = vswscanf(str, wxFormatConverter(format), argptr);
+#ifdef __VMS
+#if (__DECCXX_VER >= 70100000) && !defined(__STD_CFRONT) && !defined( __NONAMESPACE_STD )
+ int ret = std::vswscanf(str, wxFormatConverter(format), argptr);
+#else
+ int ret = vswscanf(str, wxFormatConverter(format), argptr);
+#endif
+#else
+ int ret = vswscanf(str, wxFormatConverter(format), argptr);
+#endif
va_end(argptr);
{
va_list argptr;
va_start(argptr, format);
- int ret = vfwscanf(stream, wxFormatConverter(format), argptr);
+#ifdef __VMS
+#if (__DECCXX_VER >= 70100000) && !defined(__STD_CFRONT) && !defined( __NONAMESPACE_STD )
+ int ret = std::vfwscanf(stream, wxFormatConverter(format), argptr);
+#else
+ int ret = vfwscanf(stream, wxFormatConverter(format), argptr);
+#endif
+#else
+ int ret = vfwscanf(stream, wxFormatConverter(format), argptr);
+#endif
va_end(argptr);
#ifndef wxCRT_VsscanfW
int wxCRT_VsscanfW(const wchar_t *str, const wchar_t *format, va_list argptr)
{
- return vswscanf(str, wxFormatConverter(format), argptr);
+#ifdef __VMS
+#if (__DECCXX_VER >= 70100000) && !defined(__STD_CFRONT) && !defined( __NONAMESPACE_STD )
+ return std::vswscanf(str, wxFormatConverter(format), argptr);
+#else
+ return vswscanf(str, wxFormatConverter(format), argptr);
+#endif
+#else
+ return vswscanf(str, wxFormatConverter(format), argptr);
+#endif
}
#endif