00001 // -*- C++ -*- 00002 // 00003 // $Id: OS_NS_ctype.inl 77305 2007-02-21 22:30:49Z ossama $ 00004 00005 #include "ace/os_include/os_ctype.h" 00006 #if defined ACE_HAS_WCHAR 00007 # include "ace/os_include/os_wctype.h" 00008 #endif /* ACE_HAS_WCHAR */ 00009 00010 ACE_BEGIN_VERSIONED_NAMESPACE_DECL 00011 00012 ACE_INLINE int 00013 ACE_OS::ace_isalnum (ACE_TCHAR c) 00014 { 00015 #if defined (ACE_USES_WCHAR) 00016 # if defined (_MSC_VER) && (_MSC_VER >= 1300) 00017 // For MSVC 7.x, we need to prevent "illegal" character getting into 00018 // isalnum, otherwise, it will crash the program. 00019 return c > 0 && c < 256 && iswalnum (c); 00020 # else 00021 return iswalnum (c); 00022 # endif /* _MSC_VER && _MSC_VER >= 1300 */ 00023 #else /* ACE_USES_WCHAR */ 00024 return isalnum ((unsigned char) c); 00025 #endif /* ACE_USES_WCHAR */ 00026 } 00027 00028 ACE_INLINE int 00029 ACE_OS::ace_isalpha (ACE_TCHAR c) 00030 { 00031 #if defined (ACE_USES_WCHAR) 00032 return iswalpha (c); 00033 #else /* ACE_USES_WCHAR */ 00034 return isalpha ((unsigned char) c); 00035 #endif /* ACE_USES_WCHAR */ 00036 } 00037 00038 ACE_INLINE int 00039 ACE_OS::ace_iscntrl (ACE_TCHAR c) 00040 { 00041 #if defined (ACE_USES_WCHAR) 00042 return iswcntrl (c); 00043 #else /* ACE_USES_WCHAR */ 00044 return iscntrl ((unsigned char) c); 00045 #endif /* ACE_USES_WCHAR */ 00046 } 00047 00048 ACE_INLINE int 00049 ACE_OS::ace_isdigit (ACE_TCHAR c) 00050 { 00051 #if defined (ACE_USES_WCHAR) 00052 return iswdigit (c); 00053 #else /* ACE_USES_WCHAR */ 00054 return isdigit ((unsigned char) c); 00055 #endif /* ACE_USES_WCHAR */ 00056 } 00057 00058 ACE_INLINE int 00059 ACE_OS::ace_isgraph (ACE_TCHAR c) 00060 { 00061 #if defined (ACE_USES_WCHAR) 00062 return iswgraph (c); 00063 #else /* ACE_USES_WCHAR */ 00064 return isgraph ((unsigned char) c); 00065 #endif /* ACE_USES_WCHAR */ 00066 } 00067 00068 ACE_INLINE int 00069 ACE_OS::ace_islower (ACE_TCHAR c) 00070 { 00071 #if defined (ACE_USES_WCHAR) 00072 return iswlower (c); 00073 #else /* ACE_USES_WCHAR */ 00074 return islower ((unsigned char) c); 00075 #endif /* ACE_USES_WCHAR */ 00076 } 00077 00078 ACE_INLINE int 00079 ACE_OS::ace_isprint (ACE_TCHAR c) 00080 { 00081 #if defined (ACE_USES_WCHAR) 00082 return iswprint (c); 00083 #else /* ACE_USES_WCHAR */ 00084 return isprint ((unsigned char) c); 00085 #endif /* ACE_USES_WCHAR */ 00086 } 00087 00088 ACE_INLINE int 00089 ACE_OS::ace_ispunct (ACE_TCHAR c) 00090 { 00091 #if defined (ACE_USES_WCHAR) 00092 return iswpunct (c); 00093 #else /* ACE_USES_WCHAR */ 00094 return ispunct ((unsigned char) c); 00095 #endif /* ACE_USES_WCHAR */ 00096 } 00097 00098 ACE_INLINE int 00099 ACE_OS::ace_isspace (ACE_TCHAR c) 00100 { 00101 #if defined (ACE_USES_WCHAR) 00102 return iswspace (c); 00103 #else /* ACE_USES_WCHAR */ 00104 return isspace ((unsigned char) c); 00105 #endif /* ACE_USES_WCHAR */ 00106 } 00107 00108 ACE_INLINE int 00109 ACE_OS::ace_isupper (ACE_TCHAR c) 00110 { 00111 #if defined (ACE_USES_WCHAR) 00112 return iswupper (c); 00113 #else /* ACE_USES_WCHAR */ 00114 return isupper ((unsigned char) c); 00115 #endif /* ACE_USES_WCHAR */ 00116 } 00117 00118 ACE_INLINE int 00119 ACE_OS::ace_isxdigit (ACE_TCHAR c) 00120 { 00121 #if defined (ACE_USES_WCHAR) 00122 return iswxdigit (c); 00123 #else /* ACE_USES_WCHAR */ 00124 return isxdigit ((unsigned char) c); 00125 #endif /* ACE_USES_WCHAR */ 00126 } 00127 00128 ACE_INLINE int 00129 ACE_OS::ace_tolower (int c) 00130 { 00131 return tolower (c); 00132 } 00133 00134 #if defined (ACE_HAS_WCHAR) && !defined (ACE_LACKS_TOWLOWER) 00135 ACE_INLINE wint_t 00136 ACE_OS::ace_towlower (wint_t c) 00137 { 00138 return towlower (c); 00139 } 00140 #endif /* ACE_HAS_WCHAR && !ACE_LACKS_TOWLOWER */ 00141 00142 ACE_INLINE int 00143 ACE_OS::ace_toupper (int c) 00144 { 00145 return toupper (c); 00146 } 00147 00148 #if defined (ACE_HAS_WCHAR) && !defined (ACE_LACKS_TOWUPPER) 00149 ACE_INLINE wint_t 00150 ACE_OS::ace_towupper (wint_t c) 00151 { 00152 return towupper (c); 00153 } 00154 #endif /* ACE_HAS_WCHAR && !ACE_LACKS_TOWUPPER */ 00155 00156 ACE_END_VERSIONED_NAMESPACE_DECL
1.3.6