mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-10-31 22:10:34 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			103 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef _WCTYPE_H
 | |
| 
 | |
| #ifndef _ISOMAC
 | |
| /* We try to get wint_t from <stddef.h>, but not all GCC versions define it
 | |
|    there.  So define it ourselves if it remains undefined.  */
 | |
| # define __need_wint_t
 | |
| # include <stddef.h>
 | |
| # ifndef _WINT_T
 | |
| /* Integral type unchanged by default argument promotions that can
 | |
|    hold any value corresponding to members of the extended character
 | |
|    set, as well as at least one value that does not correspond to any
 | |
|    member of the extended character set.  */
 | |
| #  define _WINT_T
 | |
| typedef unsigned int wint_t;
 | |
| # endif
 | |
| 
 | |
| /* Need to repeat these prototypes here, as wctype/wctype.h defines all
 | |
|    these as macros and thus we couldn't add libc_hidden_proto.  */
 | |
| 
 | |
| extern int iswalpha (wint_t __wc);
 | |
| extern int iswalnum (wint_t __wc);
 | |
| extern int iswdigit (wint_t __wc);
 | |
| extern int iswlower (wint_t __wc);
 | |
| extern int iswspace (wint_t __wc);
 | |
| extern int iswxdigit (wint_t __wc);
 | |
| extern wint_t towlower (wint_t __wc);
 | |
| extern wint_t towupper (wint_t __wc);
 | |
| 
 | |
| libc_hidden_proto (iswalpha)
 | |
| libc_hidden_proto (iswalnum)
 | |
| libc_hidden_proto (iswdigit)
 | |
| libc_hidden_proto (iswlower)
 | |
| libc_hidden_proto (iswspace)
 | |
| libc_hidden_proto (iswxdigit)
 | |
| libc_hidden_proto (towlower)
 | |
| libc_hidden_proto (towupper)
 | |
| #endif
 | |
| 
 | |
| #include <wctype/wctype.h>
 | |
| 
 | |
| #ifndef _ISOMAC
 | |
| /* Internal interfaces.  */
 | |
| extern int __iswalpha_l_internal (wint_t __wc, __locale_t __locale)
 | |
|      attribute_hidden;
 | |
| extern int __iswdigit_l_internal (wint_t __wc, __locale_t __locale)
 | |
|      attribute_hidden;
 | |
| extern int __iswspace_l_internal (wint_t __wc, __locale_t __locale)
 | |
|      attribute_hidden;
 | |
| extern int __iswxdigit_l_internal (wint_t __wc, __locale_t __locale)
 | |
|      attribute_hidden;
 | |
| extern int __iswspace (wint_t __wc);
 | |
| extern int __iswctype (wint_t __wc, wctype_t __desc);
 | |
| extern int __iswctype_internal (wint_t __wc, wctype_t __desc) attribute_hidden;
 | |
| extern wctype_t __wctype (const char *__property);
 | |
| extern wctrans_t __wctrans (const char *__property);
 | |
| extern wint_t __towctrans (wint_t __wc, wctrans_t __desc);
 | |
| 
 | |
| extern __typeof (iswalnum_l) __iswalnum_l;
 | |
| extern __typeof (iswalpha_l) __iswalpha_l;
 | |
| extern __typeof (iswblank_l) __iswblank_l;
 | |
| extern __typeof (iswcntrl_l) __iswcntrl_l;
 | |
| extern __typeof (iswdigit_l) __iswdigit_l;
 | |
| extern __typeof (iswlower_l) __iswlower_l;
 | |
| extern __typeof (iswgraph_l) __iswgraph_l;
 | |
| extern __typeof (iswprint_l) __iswprint_l;
 | |
| extern __typeof (iswpunct_l) __iswpunct_l;
 | |
| extern __typeof (iswspace_l) __iswspace_l;
 | |
| extern __typeof (iswupper_l) __iswupper_l;
 | |
| extern __typeof (iswxdigit_l) __iswxdigit_l;
 | |
| extern __typeof (towlower_l) __towlower_l;
 | |
| extern __typeof (towupper_l) __towupper_l;
 | |
| 
 | |
| libc_hidden_proto (__towctrans)
 | |
| libc_hidden_proto (__iswctype)
 | |
| libc_hidden_proto (__iswalnum_l)
 | |
| libc_hidden_proto (__iswalpha_l)
 | |
| libc_hidden_proto (__iswblank_l)
 | |
| libc_hidden_proto (__iswcntrl_l)
 | |
| libc_hidden_proto (__iswdigit_l)
 | |
| libc_hidden_proto (__iswlower_l)
 | |
| libc_hidden_proto (__iswgraph_l)
 | |
| libc_hidden_proto (__iswprint_l)
 | |
| libc_hidden_proto (__iswpunct_l)
 | |
| libc_hidden_proto (__iswspace_l)
 | |
| libc_hidden_proto (__iswupper_l)
 | |
| libc_hidden_proto (__iswxdigit_l)
 | |
| libc_hidden_proto (__towlower_l)
 | |
| libc_hidden_proto (__towupper_l)
 | |
| 
 | |
| /* The spec says that isdigit must only match the decimal digits.  We
 | |
|    can check this without a memory access.  */
 | |
| # ifndef NOT_IN_libc
 | |
| #  undef iswdigit
 | |
| #  define iswdigit(c) ({ wint_t __c = (c); __c >= L'0' && __c <= L'9'; })
 | |
| #  undef iswdigit_l
 | |
| #  define iswdigit_l(c, l) ({ wint_t __c = (c); __c >= L'0' && __c <= L'9'; })
 | |
| #  undef __iswdigit_l
 | |
| #  define __iswdigit_l(c, l) ({ wint_t __c = (c); __c >= L'0' && __c <= L'9'; })
 | |
| # endif
 | |
| 
 | |
| #endif
 | |
| #endif
 |