X-Git-Url: https://git.saurik.com/apple/libc.git/blobdiff_plain/734aad71947a79037af64f74c683f5eb36fe6065..6dccf0e0b5e80b7b6176e8d332e646175431bb3d:/include/ctype.h diff --git a/include/ctype.h b/include/ctype.h index bd0bc36..b893369 100644 --- a/include/ctype.h +++ b/include/ctype.h @@ -1,10 +1,8 @@ /* - * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. + * Copyright (c) 2000, 2005, 2008 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * - * Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved. - * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in @@ -68,161 +66,10 @@ #ifndef _CTYPE_H_ #define _CTYPE_H_ -#include - -#define _A 0x00000100L /* Alpha */ -#define _C 0x00000200L /* Control */ -#define _D 0x00000400L /* Digit */ -#define _G 0x00000800L /* Graph */ -#define _L 0x00001000L /* Lower */ -#define _P 0x00002000L /* Punct */ -#define _S 0x00004000L /* Space */ -#define _U 0x00008000L /* Upper */ -#define _X 0x00010000L /* X digit */ -#define _B 0x00020000L /* Blank */ -#define _R 0x00040000L /* Print */ -#define _I 0x00080000L /* Ideogram */ -#define _T 0x00100000L /* Special */ -#define _Q 0x00200000L /* Phonogram */ - -#define _CTYPE_A _A -#define _CTYPE_C _C -#define _CTYPE_D _D -#define _CTYPE_G _G -#define _CTYPE_L _L -#define _CTYPE_P _P -#define _CTYPE_S _S -#define _CTYPE_U _U -#define _CTYPE_X _X -#define _CTYPE_B _B -#define _CTYPE_R _R -#define _CTYPE_I _I -#define _CTYPE_T _T -#define _CTYPE_Q _Q - -__BEGIN_DECLS -int isalnum __P((int)); -int isalpha __P((int)); -int iscntrl __P((int)); -int isdigit __P((int)); -int isgraph __P((int)); -int islower __P((int)); -int isprint __P((int)); -int ispunct __P((int)); -int isspace __P((int)); -int isupper __P((int)); -int isxdigit __P((int)); -int tolower __P((int)); -int toupper __P((int)); - -#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE) -int digittoint __P((int)); -int isascii __P((int)); -int isblank __P((int)); -int ishexnumber __P((int)); -int isideogram __P((int)); -int isnumber __P((int)); -int isphonogram __P((int)); -int isrune __P((int)); -int isspecial __P((int)); -int toascii __P((int)); -#endif -__END_DECLS - - -#define isalnum(c) __istype((c), (_A|_D)) -#define isalpha(c) __istype((c), _A) -#define iscntrl(c) __istype((c), _C) -#define isdigit(c) __isctype((c), _D) /* ANSI -- locale independent */ -#define isgraph(c) __istype((c), _G) -#define islower(c) __istype((c), _L) -#define isprint(c) __istype((c), _R) -#define ispunct(c) __istype((c), _P) -#define isspace(c) __istype((c), _S) -#define isupper(c) __istype((c), _U) -#define isxdigit(c) __isctype((c), _X) /* ANSI -- locale independent */ -#define tolower(c) __tolower(c) -#define toupper(c) __toupper(c) - -#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE) -#define digittoint(c) __maskrune((c), 0xFF) -#define isascii(c) ((c & ~0x7F) == 0) -#define isblank(c) __istype((c), _B) -#define ishexnumber(c) __istype((c), _X) -#define isideogram(c) __istype((c), _I) -#define isnumber(c) __istype((c), _D) -#define isphonogram(c) __istype((c), _T) -#define isrune(c) __istype((c), 0xFFFFFF00L) -#define isspecial(c) __istype((c), _Q) -#define toascii(c) ((c) & 0x7F) -#endif - -/* See comments in about _BSD_RUNE_T_. */ -__BEGIN_DECLS -unsigned long ___runetype __P((_BSD_CT_RUNE_T_)); -_BSD_CT_RUNE_T_ ___tolower __P((_BSD_CT_RUNE_T_)); -_BSD_CT_RUNE_T_ ___toupper __P((_BSD_CT_RUNE_T_)); -__END_DECLS - -/* - * _EXTERNALIZE_CTYPE_INLINES_ is defined in locale/nomacros.c to tell us - * to generate code for extern versions of all our inline functions. - */ -#ifdef _EXTERNALIZE_CTYPE_INLINES_ -#define _USE_CTYPE_INLINE_ -#define static -#define __inline -#endif - -/* - * Use inline functions if we are allowed to and the compiler supports them. - */ -#if !defined(_DONT_USE_CTYPE_INLINE_) && \ - (defined(_USE_CTYPE_INLINE_) || defined(__GNUC__) || defined(__cplusplus)) - -static __inline int -__maskrune(_BSD_CT_RUNE_T_ _c, unsigned long _f) -{ - return ((_c < 0 || _c >= _CACHED_RUNES) ? ___runetype(_c) : - _CurrentRuneLocale->runetype[_c]) & _f; -} - -static __inline int -__istype(_BSD_CT_RUNE_T_ c, unsigned long f) -{ - return !!(__maskrune(c, f)); -} - -static __inline _BSD_CT_RUNE_T_ -__isctype(_BSD_CT_RUNE_T_ _c, unsigned long _f) -{ - return (_c < 0 || _c >= _CACHED_RUNES) ? 0 : - !!(_DefaultRuneLocale.runetype[_c] & _f); -} - -static __inline _BSD_CT_RUNE_T_ -__toupper(_BSD_CT_RUNE_T_ _c) -{ - return (_c < 0 || _c >= _CACHED_RUNES) ? ___toupper(_c) : - _CurrentRuneLocale->mapupper[_c]; -} - -static __inline _BSD_CT_RUNE_T_ -__tolower(_BSD_CT_RUNE_T_ _c) -{ - return (_c < 0 || _c >= _CACHED_RUNES) ? ___tolower(_c) : - _CurrentRuneLocale->maplower[_c]; -} - -#else /* not using inlines */ +#include <_ctype.h> -__BEGIN_DECLS -int __maskrune __P((_BSD_CT_RUNE_T_, unsigned long)); -int __istype __P((_BSD_CT_RUNE_T_, unsigned long)); -int __isctype __P((_BSD_CT_RUNE_T_, unsigned long)); -_BSD_CT_RUNE_T_ __toupper __P((_BSD_CT_RUNE_T_)); -_BSD_CT_RUNE_T_ __tolower __P((_BSD_CT_RUNE_T_)); -__END_DECLS -#endif /* using inlines */ +#ifdef _USE_EXTENDED_LOCALES_ +#include +#endif /* _USE_EXTENDED_LOCALES_ */ #endif /* !_CTYPE_H_ */