Go to the documentation of this file.00001
00002
00003
00004
00005 #if defined (ACE_LACKS_ISCTYPE)
00006 #include "ace/OS_NS_errno.h"
00007 #endif
00008
00009 #if defined (ACE_USES_WCHAR) && defined (ACE_LACKS_ISWBLANK) && !defined (ACE_LACKS_ISWCTYPE)
00010 #include "ace/OS_NS_wctype.h"
00011 #endif
00012
00013 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00014
00015 ACE_INLINE int
00016 ACE_OS::ace_isalnum (ACE_TCHAR c)
00017 {
00018 #if defined (ACE_USES_WCHAR)
00019 # if defined (_MSC_VER)
00020
00021
00022 return c > 0 && c < 0xFF && iswalnum (c);
00023 # else
00024 return iswalnum (c);
00025 # endif
00026 #else
00027 return isalnum ((unsigned char) c);
00028 #endif
00029 }
00030
00031 ACE_INLINE int
00032 ACE_OS::ace_isascii (ACE_TCHAR c)
00033 {
00034 #if defined (ACE_USES_WCHAR)
00035 # if defined (ACE_LACKS_ISWASCII)
00036 if (c < 256)
00037 return isascii (static_cast<int> (c));
00038 else
00039 return c;
00040 # else
00041 return iswascii (c);
00042 # endif
00043 #else
00044 # if defined (ACE_LACKS_ISASCII)
00045 return (static_cast<unsigned char>(c) <= 0x7F);
00046 #else
00047 return isascii ((unsigned char) c);
00048 #endif
00049 #endif
00050 }
00051
00052 ACE_INLINE int
00053 ACE_OS::ace_isblank (ACE_TCHAR c)
00054 {
00055 #if defined (ACE_USES_WCHAR)
00056 # if defined (ACE_LACKS_ISWBLANK)
00057 # if !defined (ACE_LACKS_ISWCTYPE)
00058 return ace_iswctype (c, _BLANK);
00059 # else
00060 return (c == 0x9) || (c == 0x20);
00061 # endif
00062 # else
00063 return iswblank (c);
00064 # endif
00065 #elif defined (ACE_LACKS_ISBLANK)
00066 return (c == 0x9) || (c == 0x20);
00067 #else
00068 return isblank ((unsigned char) c);
00069 #endif
00070 }
00071
00072 ACE_INLINE int
00073 ACE_OS::ace_isalpha (ACE_TCHAR c)
00074 {
00075 #if defined (ACE_USES_WCHAR)
00076 return iswalpha (c);
00077 #else
00078 return isalpha ((unsigned char) c);
00079 #endif
00080 }
00081
00082 ACE_INLINE int
00083 ACE_OS::ace_iscntrl (ACE_TCHAR c)
00084 {
00085 #if defined (ACE_USES_WCHAR)
00086 return iswcntrl (c);
00087 #else
00088 return iscntrl ((unsigned char) c);
00089 #endif
00090 }
00091
00092 ACE_INLINE int
00093 ACE_OS::ace_isdigit (ACE_TCHAR c)
00094 {
00095 #if defined (ACE_USES_WCHAR)
00096 return iswdigit (c);
00097 #else
00098 return isdigit ((unsigned char) c);
00099 #endif
00100 }
00101
00102 ACE_INLINE int
00103 ACE_OS::ace_isgraph (ACE_TCHAR c)
00104 {
00105 #if defined (ACE_USES_WCHAR)
00106 return iswgraph (c);
00107 #else
00108 return isgraph ((unsigned char) c);
00109 #endif
00110 }
00111
00112 ACE_INLINE int
00113 ACE_OS::ace_islower (ACE_TCHAR c)
00114 {
00115 #if defined (ACE_USES_WCHAR)
00116 return iswlower (c);
00117 #else
00118 return islower ((unsigned char) c);
00119 #endif
00120 }
00121
00122 ACE_INLINE int
00123 ACE_OS::ace_isprint (ACE_TCHAR c)
00124 {
00125 #if defined (ACE_USES_WCHAR)
00126 # if defined (ACE_LACKS_CORRECT_ISWPRINT_TAB)
00127
00128
00129
00130
00131 if (c == 0x9)
00132 {
00133 return 0;
00134 }
00135 # endif
00136 return iswprint (c);
00137 #else
00138 return isprint ((unsigned char) c);
00139 #endif
00140 }
00141
00142 ACE_INLINE int
00143 ACE_OS::ace_ispunct (ACE_TCHAR c)
00144 {
00145 #if defined (ACE_USES_WCHAR)
00146 return iswpunct (c);
00147 #else
00148 return ispunct ((unsigned char) c);
00149 #endif
00150 }
00151
00152 ACE_INLINE int
00153 ACE_OS::ace_isspace (ACE_TCHAR c)
00154 {
00155 #if defined (ACE_USES_WCHAR)
00156 return iswspace (c);
00157 #else
00158 return isspace ((unsigned char) c);
00159 #endif
00160 }
00161
00162 ACE_INLINE int
00163 ACE_OS::ace_isupper (ACE_TCHAR c)
00164 {
00165 #if defined (ACE_USES_WCHAR)
00166 return iswupper (c);
00167 #else
00168 return isupper ((unsigned char) c);
00169 #endif
00170 }
00171
00172 ACE_INLINE int
00173 ACE_OS::ace_isxdigit (ACE_TCHAR c)
00174 {
00175 #if defined (ACE_USES_WCHAR)
00176 return iswxdigit (c);
00177 #else
00178 return isxdigit ((unsigned char) c);
00179 #endif
00180 }
00181
00182 ACE_INLINE int
00183 ACE_OS::ace_tolower (int c)
00184 {
00185 return tolower (c);
00186 }
00187
00188 #if defined (ACE_HAS_WCHAR)
00189 ACE_INLINE wint_t
00190 ACE_OS::ace_towlower (wint_t c)
00191 {
00192 #if defined (ACE_LACKS_TOWLOWER)
00193 if (c < 256)
00194 return tolower (static_cast<int> (c));
00195 else
00196 return c;
00197 #else
00198 return towlower (c);
00199 #endif
00200 }
00201 #endif
00202
00203 ACE_INLINE int
00204 ACE_OS::ace_toupper (int c)
00205 {
00206 return toupper (c);
00207 }
00208
00209 #if defined (ACE_HAS_WCHAR) && !defined (ACE_LACKS_TOWUPPER)
00210 ACE_INLINE wint_t
00211 ACE_OS::ace_towupper (wint_t c)
00212 {
00213 return towupper (c);
00214 }
00215 #endif
00216
00217 ACE_INLINE int
00218 ACE_OS::ace_isctype(int c, ctype_t desc)
00219 {
00220 #if defined (ACE_ISCTYPE_EQUIVALENT)
00221 return ACE_ISCTYPE_EQUIVALENT (c, desc);
00222 #elif !defined (ACE_LACKS_ISCTYPE)
00223 return isctype (c, desc);
00224 #else
00225 ACE_UNUSED_ARG (c);
00226 ACE_UNUSED_ARG (desc);
00227 ACE_NOTSUP_RETURN (-1);
00228 #endif
00229 }
00230
00231 ACE_END_VERSIONED_NAMESPACE_DECL