/ include / _wctype.h
_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_ */