2021-10-11 19:38:01 -03:00

121 lines
3.3 KiB
C
Executable File

/* 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 */