summaryrefslogtreecommitdiff
path: root/src/misc/strapi.hpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2007-07-14 20:30:35 +0000
committerrubidium <rubidium@openttd.org>2007-07-14 20:30:35 +0000
commitb8e302d2a08fe8775a459ff123fabd2565a50238 (patch)
treebd0cb27ac07f0dd258f625539fb0fa5233d4534f /src/misc/strapi.hpp
parenta2a3b7da24faf464a70bb3efcfb44d8491105117 (diff)
downloadopenttd-b8e302d2a08fe8775a459ff123fabd2565a50238.tar.xz
(svn r10562) -Fix: most of the MorphOS issues; MorphOS doesn't know about wchars, so disable all code that has to use wchars for MorphOS.
Diffstat (limited to 'src/misc/strapi.hpp')
-rw-r--r--src/misc/strapi.hpp29
1 files changed, 18 insertions, 11 deletions
diff --git a/src/misc/strapi.hpp b/src/misc/strapi.hpp
index c901af6ea..33e22d5b9 100644
--- a/src/misc/strapi.hpp
+++ b/src/misc/strapi.hpp
@@ -6,12 +6,15 @@
#define STRAPI_HPP
#include <string.h>
+
+#if defined(HAS_WCHAR)
#include <wchar.h>
#if !defined(_MSC_VER)
#define _stricmp strcmp
#define _wcsicmp wcscmp
-#endif //!_MSC_VER
+#endif /* !defined(_MSC_VER) */
+#endif /* HAS_WCHAR */
/** String API mapper base - just mapping by character type, not by case sensitivity yet.
* Class template CStrApiBaseT declaration is general, but following inline method
@@ -32,35 +35,37 @@ template <> /*static*/ inline size_t CStrApiBaseT<char>::StrLen(const char *s)
return ::strlen(s);
}
-/** ::strlen wrapper specialization for wchar_t */
-template <> /*static*/ inline size_t CStrApiBaseT<wchar_t>::StrLen(const wchar_t *s)
-{
- return ::wcslen(s);
-}
-
/** ::vsprintf wrapper specialization for char */
template <> /*static*/ inline int CStrApiBaseT<char>::SPrintFL(char *buf, size_t count, const char *fmt, va_list args)
{
#if defined(_MSC_VER) && (_MSC_VER >= 1400) // VC 8.0 and above
return ::vsnprintf_s(buf, count, count - 1, fmt, args);
-#else // ! VC 8.0 and above
+#else /* ! VC 8.0 and above */
return ::vsnprintf(buf, count, fmt, args);
#endif
}
+#if defined(HAS_WCHAR)
+/** ::strlen wrapper specialization for wchar_t */
+template <> /*static*/ inline size_t CStrApiBaseT<wchar_t>::StrLen(const wchar_t *s)
+{
+ return ::wcslen(s);
+}
+
/** ::vsprintf wrapper specialization for wchar_t */
template <> /*static*/ inline int CStrApiBaseT<wchar_t>::SPrintFL(wchar_t *buf, size_t count, const wchar_t *fmt, va_list args)
{
#if defined(_MSC_VER) && (_MSC_VER >= 1400) // VC 8.0 and above
return ::_vsnwprintf_s(buf, count, count - 1, fmt, args);
-#else // ! VC 8.0 and above
+#else /* ! VC 8.0 and above */
# if defined(_WIN32)
return ::_vsnwprintf(buf, count, fmt, args);
-# else // !_WIN32
+# else /* !_WIN32 */
return ::vswprintf(buf, count, fmt, args);
-# endif // !_WIN32
+# endif /* !_WIN32 */
#endif
}
+#endif /* HAS_WCHAR */
@@ -81,6 +86,7 @@ template <> /*static*/ inline int CStrApiT<char, true>::StrCmp(const char *s1, c
return ::_stricmp(s1, s2);
}
+#if defined(HAS_WCHAR)
template <> /*static*/ inline int CStrApiT<wchar_t, false>::StrCmp(const wchar_t *s1, const wchar_t *s2)
{
return ::wcscmp(s1, s2);
@@ -90,5 +96,6 @@ template <> /*static*/ inline int CStrApiT<wchar_t, true>::StrCmp(const wchar_t
{
return ::_wcsicmp(s1, s2);
}
+#endif /* HAS_WCHAR */
#endif /* STRAPI_HPP */