/* Copyright (c) 1988 AT&T */ /* All Rights Reserved */ /* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */ /* The copyright notice above does not evidence any */ /* actual or intended publication of such source code. */ #ifndef _CTYPE_H #define _CTYPE_H #pragma ident "@(#)ctype.h 1.19 95/01/28 SMI" /* SVr4.0 1.18 */ #include <sys/feature_tests.h> #ifdef __cplusplus extern "C" { #endif #define _U 01 /* Upper case */ #define _L 02 /* Lower case */ #define _N 04 /* Numeral (digit) */ #define _S 010 /* Spacing character */ #define _P 020 /* Punctuation */ #define _C 040 /* Control character */ #define _B 0100 /* Blank */ #define _X 0200 /* heXadecimal digit */ #if defined(__STDC__) extern int isalnum(int); extern int isalpha(int); extern int iscntrl(int); extern int isdigit(int); extern int isgraph(int); extern int islower(int); extern int isprint(int); extern int ispunct(int); extern int isspace(int); extern int isupper(int); extern int isxdigit(int); extern int tolower(int); extern int toupper(int); #if defined(__EXTENSIONS__) || ((__STDC__ == 0 && \ !defined(_POSIX_C_SOURCE)) || defined(_XOPEN_SOURCE)) extern int isascii(int); extern int toascii(int); extern int _tolower(int); extern int _toupper(int); #endif extern unsigned char __ctype[]; /* * Note that the following construct, "!#lint(on)", is a non-standard * extension to ANSI-C. It is maintained here to provide compatibility * for existing compilations systems, but should be viewed as transitional * and may be removed in a future release. If it is required that this * file not contain this extension, edit this file to remove the offending * condition. */ #if !#lint(on) && !defined(__lint) #define isalpha(c) ((__ctype + 1)[c] & (_U | _L)) #define isupper(c) ((__ctype + 1)[c] & _U) #define islower(c) ((__ctype + 1)[c] & _L) #define isdigit(c) ((__ctype + 1)[c] & _N) #define isxdigit(c) ((__ctype + 1)[c] & _X) #define isalnum(c) ((__ctype + 1)[c] & (_U | _L | _N)) #define isspace(c) ((__ctype + 1)[c] & _S) #define ispunct(c) ((__ctype + 1)[c] & _P) #define isprint(c) ((__ctype + 1)[c] & (_P | _U | _L | _N | _B)) #define isgraph(c) ((__ctype + 1)[c] & (_P | _U | _L | _N)) #define iscntrl(c) ((__ctype + 1)[c] & _C) #if defined(__EXTENSIONS__) || ((__STDC__ == 0 && \ !defined(_POSIX_C_SOURCE)) || defined(_XOPEN_SOURCE)) #define isascii(c) (!((c) & ~0177)) #define _toupper(c) ((__ctype + 258)[c]) #define _tolower(c) ((__ctype + 258)[c]) #define toascii(c) ((c) & 0177) #endif #endif /* __lint */ #else /* __STDC__ */ extern unsigned char _ctype[]; #if !defined(lint) && !defined(__lint) #define isalpha(c) ((_ctype + 1)[c] & (_U | _L)) #define isupper(c) ((_ctype + 1)[c] & _U) #define islower(c) ((_ctype + 1)[c] & _L) #define isdigit(c) ((_ctype + 1)[c] & _N) #define isxdigit(c) ((_ctype + 1)[c] & _X) #define isalnum(c) ((_ctype + 1)[c] & (_U | _L | _N)) #define isspace(c) ((_ctype + 1)[c] & _S) #define ispunct(c) ((_ctype + 1)[c] & _P) #define isprint(c) ((_ctype + 1)[c] & (_P | _U | _L | _N | _B)) #define isgraph(c) ((_ctype + 1)[c] & (_P | _U | _L | _N)) #define iscntrl(c) ((_ctype + 1)[c] & _C) #define isascii(c) (!((c) & ~0177)) #define _toupper(c) ((_ctype + 258)[c]) #define _tolower(c) ((_ctype + 258)[c]) #define toascii(c) ((c) & 0177) #endif /* __lint */ #endif /* __STDC__ */ #ifdef __cplusplus } #endif #endif /* _CTYPE_H */