include/linux/ctype.h
changeset 0 aa628870c1d3
equal deleted inserted replaced
-1:000000000000 0:aa628870c1d3
       
     1 #ifndef _LINUX_CTYPE_H
       
     2 #define _LINUX_CTYPE_H
       
     3 
       
     4 /*
       
     5  * NOTE! This ctype does not handle EOF like the standard C
       
     6  * library is required to.
       
     7  */
       
     8 
       
     9 #define _U	0x01	/* upper */
       
    10 #define _L	0x02	/* lower */
       
    11 #define _D	0x04	/* digit */
       
    12 #define _C	0x08	/* cntrl */
       
    13 #define _P	0x10	/* punct */
       
    14 #define _S	0x20	/* white space (space/lf/tab) */
       
    15 #define _X	0x40	/* hex digit */
       
    16 #define _SP	0x80	/* hard space (0x20) */
       
    17 
       
    18 extern unsigned char _ctype[];
       
    19 
       
    20 #define __ismask(x) (_ctype[(int)(unsigned char)(x)])
       
    21 
       
    22 #define isalnum(c)	((__ismask(c)&(_U|_L|_D)) != 0)
       
    23 #define isalpha(c)	((__ismask(c)&(_U|_L)) != 0)
       
    24 #define iscntrl(c)	((__ismask(c)&(_C)) != 0)
       
    25 #define isdigit(c)	((__ismask(c)&(_D)) != 0)
       
    26 #define isgraph(c)	((__ismask(c)&(_P|_U|_L|_D)) != 0)
       
    27 #define islower(c)	((__ismask(c)&(_L)) != 0)
       
    28 #define isprint(c)	((__ismask(c)&(_P|_U|_L|_D|_SP)) != 0)
       
    29 #define ispunct(c)	((__ismask(c)&(_P)) != 0)
       
    30 #define isspace(c)	((__ismask(c)&(_S)) != 0)
       
    31 #define isupper(c)	((__ismask(c)&(_U)) != 0)
       
    32 #define isxdigit(c)	((__ismask(c)&(_D|_X)) != 0)
       
    33 
       
    34 #define isascii(c) (((unsigned char)(c))<=0x7f)
       
    35 #define toascii(c) (((unsigned char)(c))&0x7f)
       
    36 
       
    37 static inline unsigned char __tolower(unsigned char c)
       
    38 {
       
    39 	if (isupper(c))
       
    40 		c -= 'A'-'a';
       
    41 	return c;
       
    42 }
       
    43 
       
    44 static inline unsigned char __toupper(unsigned char c)
       
    45 {
       
    46 	if (islower(c))
       
    47 		c -= 'a'-'A';
       
    48 	return c;
       
    49 }
       
    50 
       
    51 #define tolower(c) __tolower(c)
       
    52 #define toupper(c) __toupper(c)
       
    53 
       
    54 #endif