/ 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   *	citrus Id: wctype.h,v 1.4 2000/12/21 01:50:21 itojun Exp
 27   *	$NetBSD: wctype.h,v 1.3 2000/12/22 14:16:16 itojun Exp $
 28   * $FreeBSD: /repoman/r/ncvs/src/include/wctype.h,v 1.10 2002/08/21 16:19:55 mike Exp $
 29   */
 30  
 31  #ifndef _WCTYPE_H_
 32  #define	_WCTYPE_H_
 33  
 34  #include <sys/cdefs.h>
 35  #include <_types.h>
 36  #include <_types/_wctrans_t.h>
 37  
 38  #define __DARWIN_WCTYPE_TOP_inline	__header_inline
 39  
 40  #include <_wctype.h>
 41  #include <ctype.h>
 42  
 43  /*
 44   * Use inline functions if we are allowed to and the compiler supports them.
 45   */
 46  #if !defined(_DONT_USE_CTYPE_INLINE_) && \
 47      (defined(_USE_CTYPE_INLINE_) || defined(__GNUC__) || defined(__cplusplus))
 48  
 49  __DARWIN_WCTYPE_TOP_inline int
 50  iswblank(wint_t _wc)
 51  {
 52  	return (__istype(_wc, _CTYPE_B));
 53  }
 54  
 55  #if !defined(_ANSI_SOURCE)
 56  __DARWIN_WCTYPE_TOP_inline int
 57  iswascii(wint_t _wc)
 58  {
 59  	return ((_wc & ~0x7F) == 0);
 60  }
 61  
 62  __DARWIN_WCTYPE_TOP_inline int
 63  iswhexnumber(wint_t _wc)
 64  {
 65  	return (__istype(_wc, _CTYPE_X));
 66  }
 67  
 68  __DARWIN_WCTYPE_TOP_inline int
 69  iswideogram(wint_t _wc)
 70  {
 71  	return (__istype(_wc, _CTYPE_I));
 72  }
 73  
 74  __DARWIN_WCTYPE_TOP_inline int
 75  iswnumber(wint_t _wc)
 76  {
 77  	return (__istype(_wc, _CTYPE_D));
 78  }
 79  
 80  __DARWIN_WCTYPE_TOP_inline int
 81  iswphonogram(wint_t _wc)
 82  {
 83  	return (__istype(_wc, _CTYPE_Q));
 84  }
 85  
 86  __DARWIN_WCTYPE_TOP_inline int
 87  iswrune(wint_t _wc)
 88  {
 89  	return (__istype(_wc, 0xFFFFFFF0L));
 90  }
 91  
 92  __DARWIN_WCTYPE_TOP_inline int
 93  iswspecial(wint_t _wc)
 94  {
 95  	return (__istype(_wc, _CTYPE_T));
 96  }
 97  #endif /* !_ANSI_SOURCE */
 98  
 99  #else /* not using inlines */
100  
101  __BEGIN_DECLS
102  int	iswblank(wint_t);
103  
104  #if !defined(_ANSI_SOURCE)
105  wint_t	iswascii(wint_t);
106  wint_t	iswhexnumber(wint_t);
107  wint_t	iswideogram(wint_t);
108  wint_t	iswnumber(wint_t);
109  wint_t	iswphonogram(wint_t);
110  wint_t	iswrune(wint_t);
111  wint_t	iswspecial(wint_t);
112  #endif
113  __END_DECLS
114  
115  #endif /* using inlines */
116  
117  __BEGIN_DECLS
118  #if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
119  wint_t	nextwctype(wint_t, wctype_t);
120  #endif
121  wint_t	towctrans(wint_t, wctrans_t);
122  wctrans_t
123  	wctrans(const char *);
124  __END_DECLS
125  
126  #ifdef _USE_EXTENDED_LOCALES_
127  #include <xlocale/_wctype.h>
128  #endif /* _USE_EXTENDED_LOCALES_ */
129  
130  #endif		/* _WCTYPE_H_ */