00001
00002
00003
00004
00005
00006
00007 #ifndef _CTYPE_H
00008 #define _CTYPE_H
00009
00010 #ifndef _ANSI_H
00011 #include <ansi.h>
00012 #endif
00013
00014 extern char __ctype[];
00015
00016 #define _U 0x01
00017 #define _L 0x02
00018 #define _N 0x04
00019 #define _S 0x08
00020 #define _P 0x10
00021 #define _C 0x20
00022 #define _X 0x40
00023
00024
00025 _PROTOTYPE( int isalnum, (int _c) );
00026 _PROTOTYPE( int isalpha, (int _c) );
00027 _PROTOTYPE( int iscntrl, (int _c) );
00028 _PROTOTYPE( int isdigit, (int _c) );
00029 _PROTOTYPE( int isgraph, (int _c) );
00030 _PROTOTYPE( int islower, (int _c) );
00031 _PROTOTYPE( int isprint, (int _c) );
00032 _PROTOTYPE( int ispunct, (int _c) );
00033 _PROTOTYPE( int isspace, (int _c) );
00034 _PROTOTYPE( int isupper, (int _c) );
00035 _PROTOTYPE( int isxdigit,(int _c) );
00036 _PROTOTYPE( int tolower, (int _c) );
00037 _PROTOTYPE( int toupper, (int _c) );
00038 _PROTOTYPE( int toascii, (int _c) );
00039
00040
00041 #define isalnum(c) ((__ctype+1)[c]&(_U|_L|_N))
00042 #define isalpha(c) ((__ctype+1)[c]&(_U|_L))
00043 #define iscntrl(c) ((__ctype+1)[c]&_C)
00044 #define isgraph(c) ((__ctype+1)[c]&(_P|_U|_L|_N))
00045 #define ispunct(c) ((__ctype+1)[c]&_P)
00046 #define isspace(c) ((__ctype+1)[c]&_S)
00047 #define isxdigit(c) ((__ctype+1)[c]&(_N|_X))
00048
00049 #define isdigit(c) ((unsigned) ((c)-'0') < 10)
00050 #define islower(c) ((unsigned) ((c)-'a') < 26)
00051 #define isupper(c) ((unsigned) ((c)-'A') < 26)
00052 #define isprint(c) ((unsigned) ((c)-' ') < 95)
00053 #define isascii(c) ((unsigned) (c) < 128)
00054
00055 #define toascii(c) ((c) & 0x7f)
00056
00057 #endif