_wctype.h
1 /*- 2 * Copyright (c)1999 Citrus Project, 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * 26 */ 27 28 /* 29 * Common header for wctype.h and wchar.h 30 * 31 * Contains everything required by wctype.h except: 32 * 33 * #include <_types/_wctrans_t.h> 34 * int iswblank(wint_t); 35 * wint_t towctrans(wint_t, wctrans_t); 36 * wctrans_t wctrans(const char *); 37 */ 38 39 #ifndef __WCTYPE_H_ 40 #define __WCTYPE_H_ 41 42 #include <__wctype.h> 43 44 /* 45 * Use inline functions if we are allowed to and the compiler supports them. 46 */ 47 #if !defined(_DONT_USE_CTYPE_INLINE_) && \ 48 (defined(_USE_CTYPE_INLINE_) || defined(__GNUC__) || defined(__cplusplus)) 49 50 __DARWIN_WCTYPE_TOP_inline int 51 iswalnum(wint_t _wc) 52 { 53 return (__istype(_wc, _CTYPE_A|_CTYPE_D)); 54 } 55 56 __DARWIN_WCTYPE_TOP_inline int 57 iswalpha(wint_t _wc) 58 { 59 return (__istype(_wc, _CTYPE_A)); 60 } 61 62 __DARWIN_WCTYPE_TOP_inline int 63 iswcntrl(wint_t _wc) 64 { 65 return (__istype(_wc, _CTYPE_C)); 66 } 67 68 __DARWIN_WCTYPE_TOP_inline int 69 iswctype(wint_t _wc, wctype_t _charclass) 70 { 71 return (__istype(_wc, _charclass)); 72 } 73 74 __DARWIN_WCTYPE_TOP_inline int 75 iswdigit(wint_t _wc) 76 { 77 return (__isctype(_wc, _CTYPE_D)); 78 } 79 80 __DARWIN_WCTYPE_TOP_inline int 81 iswgraph(wint_t _wc) 82 { 83 return (__istype(_wc, _CTYPE_G)); 84 } 85 86 __DARWIN_WCTYPE_TOP_inline int 87 iswlower(wint_t _wc) 88 { 89 return (__istype(_wc, _CTYPE_L)); 90 } 91 92 __DARWIN_WCTYPE_TOP_inline int 93 iswprint(wint_t _wc) 94 { 95 return (__istype(_wc, _CTYPE_R)); 96 } 97 98 __DARWIN_WCTYPE_TOP_inline int 99 iswpunct(wint_t _wc) 100 { 101 return (__istype(_wc, _CTYPE_P)); 102 } 103 104 __DARWIN_WCTYPE_TOP_inline int 105 iswspace(wint_t _wc) 106 { 107 return (__istype(_wc, _CTYPE_S)); 108 } 109 110 __DARWIN_WCTYPE_TOP_inline int 111 iswupper(wint_t _wc) 112 { 113 return (__istype(_wc, _CTYPE_U)); 114 } 115 116 __DARWIN_WCTYPE_TOP_inline int 117 iswxdigit(wint_t _wc) 118 { 119 return (__isctype(_wc, _CTYPE_X)); 120 } 121 122 __DARWIN_WCTYPE_TOP_inline wint_t 123 towlower(wint_t _wc) 124 { 125 return (__tolower(_wc)); 126 } 127 128 __DARWIN_WCTYPE_TOP_inline wint_t 129 towupper(wint_t _wc) 130 { 131 return (__toupper(_wc)); 132 } 133 134 #else /* not using inlines */ 135 136 __BEGIN_DECLS 137 int iswalnum(wint_t); 138 int iswalpha(wint_t); 139 int iswcntrl(wint_t); 140 int iswctype(wint_t, wctype_t); 141 int iswdigit(wint_t); 142 int iswgraph(wint_t); 143 int iswlower(wint_t); 144 int iswprint(wint_t); 145 int iswpunct(wint_t); 146 int iswspace(wint_t); 147 int iswupper(wint_t); 148 int iswxdigit(wint_t); 149 wint_t towlower(wint_t); 150 wint_t towupper(wint_t); 151 __END_DECLS 152 153 #endif /* using inlines */ 154 155 __BEGIN_DECLS 156 wctype_t 157 wctype(const char *); 158 __END_DECLS 159 160 #ifdef _USE_EXTENDED_LOCALES_ 161 #include <xlocale/__wctype.h> 162 #endif /* _USE_EXTENDED_LOCALES_ */ 163 164 #endif /* __WCTYPE_H_ */