// 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
// FIXME-UTF8: we'd be better off implementing these ourselves, as the CRT
// version is locale-dependent
-// FIXME-UTF8: should we return bool from these instead of int?
// FIXME-UTF8: these don't work when EOF is passed in because of wxUniChar,
// is this OK or not?
-inline int wxIsalnum(const wxUniChar& c) { return wxCRT_IsalnumW(c); }
-inline int wxIsalpha(const wxUniChar& c) { return wxCRT_IsalphaW(c); }
-inline int wxIscntrl(const wxUniChar& c) { return wxCRT_IscntrlW(c); }
-inline int wxIsdigit(const wxUniChar& c) { return wxCRT_IsdigitW(c); }
-inline int wxIsgraph(const wxUniChar& c) { return wxCRT_IsgraphW(c); }
-inline int wxIslower(const wxUniChar& c) { return wxCRT_IslowerW(c); }
-inline int wxIsprint(const wxUniChar& c) { return wxCRT_IsprintW(c); }
-inline int wxIspunct(const wxUniChar& c) { return wxCRT_IspunctW(c); }
-inline int wxIsspace(const wxUniChar& c) { return wxCRT_IsspaceW(c); }
-inline int wxIsupper(const wxUniChar& c) { return wxCRT_IsupperW(c); }
-inline int wxIsxdigit(const wxUniChar& c) { return wxCRT_IsxdigitW(c); }
+inline bool wxIsalnum(const wxUniChar& c) { return wxCRT_IsalnumW(c) != 0; }
+inline bool wxIsalpha(const wxUniChar& c) { return wxCRT_IsalphaW(c) != 0; }
+inline bool wxIscntrl(const wxUniChar& c) { return wxCRT_IscntrlW(c) != 0; }
+inline bool wxIsdigit(const wxUniChar& c) { return wxCRT_IsdigitW(c) != 0; }
+inline bool wxIsgraph(const wxUniChar& c) { return wxCRT_IsgraphW(c) != 0; }
+inline bool wxIslower(const wxUniChar& c) { return wxCRT_IslowerW(c) != 0; }
+inline bool wxIsprint(const wxUniChar& c) { return wxCRT_IsprintW(c) != 0; }
+inline bool wxIspunct(const wxUniChar& c) { return wxCRT_IspunctW(c) != 0; }
+inline bool wxIsspace(const wxUniChar& c) { return wxCRT_IsspaceW(c) != 0; }
+inline bool wxIsupper(const wxUniChar& c) { return wxCRT_IsupperW(c) != 0; }
+inline bool wxIsxdigit(const wxUniChar& c) { return wxCRT_IsxdigitW(c) != 0; }
inline wxUniChar wxTolower(const wxUniChar& c) { return wxCRT_TolowerW(c); }
inline wxUniChar wxToupper(const wxUniChar& c) { return wxCRT_ToupperW(c); }