ctype.h revision 7c478bd95313f5f23a4c958a745db2134aa03244
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
#pragma ident "%Z%%M% %I% %E% SMI"
/* Copyright (c) 1984 AT&T */
/* All Rights Reserved */
/* Portions Copyright (c) 1989 Sun Microsystems, Inc. */
/* All Rights Reserved */
#ifndef __ctype_h
#define __ctype_h
#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 _X 0100 /* heXadecimal digit */
#define _B 0200 /* Blank */
extern int isalnum(/* int c */);
extern int isalpha(/* int c */);
#ifndef _POSIX_SOURCE
extern int isascii(/* int c */);
#endif
extern int iscntrl(/* int c */);
extern int isdigit(/* int c */);
extern int isgraph(/* int c */);
extern int islower(/* int c */);
extern int isprint(/* int c */);
extern int ispunct(/* int c */);
extern int isspace(/* int c */);
extern int isupper(/* int c */);
extern int isxdigit(/* int c */);
#ifndef _POSIX_SOURCE
extern int toascii(/* int c */);
#endif
extern int tolower(/* int c */);
extern int toupper(/* int c */);
#ifndef lint
#define isalnum(c) ((_ctype_ + 1)[c] & (_U | _L | _N))
#define isalpha(c) ((_ctype_ + 1)[c] & (_U | _L))
#ifndef _POSIX_SOURCE
#define isascii(c) (!((c) & ~0177))
#endif
#define iscntrl(c) ((_ctype_ + 1)[c] & _C)
#define isdigit(c) ((_ctype_ + 1)[c] & _N)
#define isgraph(c) ((_ctype_ + 1)[c] & (_P | _U | _L | _N))
#define islower(c) ((_ctype_ + 1)[c] & _L)
#define isprint(c) ((_ctype_ + 1)[c] & (_P | _U | _L | _N | _B))
#define ispunct(c) ((_ctype_ + 1)[c] & _P)
#define isspace(c) ((_ctype_ + 1)[c] & _S)
#define isupper(c) ((_ctype_ + 1)[c] & _U)
#define isxdigit(c) ((_ctype_ + 1)[c] & _X)
#ifndef _POSIX_SOURCE
#define toascii(c) ((c) & 0177)
/*
* These upper/lower macros are not codeset independent
*/
#define _toupper(c) ((c) - 'a' + 'A')
#define _tolower(c) ((c) - 'A' + 'a')
#endif
extern char _ctype_[];
#endif /* lint */
#endif /* !__ctype_h */