Blame view

include/linux/ctype.h 1.58 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  #ifndef _LINUX_CTYPE_H
  #define _LINUX_CTYPE_H
  
  /*
   * NOTE! This ctype does not handle EOF like the standard C
   * library is required to.
   */
  
  #define _U	0x01	/* upper */
  #define _L	0x02	/* lower */
  #define _D	0x04	/* digit */
  #define _C	0x08	/* cntrl */
  #define _P	0x10	/* punct */
  #define _S	0x20	/* white space (space/lf/tab) */
  #define _X	0x40	/* hex digit */
  #define _SP	0x80	/* hard space (0x20) */
7707e61c7   AndrĂ© Goddard Rosa   ctype: constify r...
17
  extern const unsigned char _ctype[];
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
18
19
20
21
22
23
24
25
26
27
28
  
  #define __ismask(x) (_ctype[(int)(unsigned char)(x)])
  
  #define isalnum(c)	((__ismask(c)&(_U|_L|_D)) != 0)
  #define isalpha(c)	((__ismask(c)&(_U|_L)) != 0)
  #define iscntrl(c)	((__ismask(c)&(_C)) != 0)
  #define isdigit(c)	((__ismask(c)&(_D)) != 0)
  #define isgraph(c)	((__ismask(c)&(_P|_U|_L|_D)) != 0)
  #define islower(c)	((__ismask(c)&(_L)) != 0)
  #define isprint(c)	((__ismask(c)&(_P|_U|_L|_D|_SP)) != 0)
  #define ispunct(c)	((__ismask(c)&(_P)) != 0)
f653398c8   AndrĂ© Goddard Rosa   string: factorize...
29
  /* Note: isspace() must return false for %NUL-terminator */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
  #define isspace(c)	((__ismask(c)&(_S)) != 0)
  #define isupper(c)	((__ismask(c)&(_U)) != 0)
  #define isxdigit(c)	((__ismask(c)&(_D|_X)) != 0)
  
  #define isascii(c) (((unsigned char)(c))<=0x7f)
  #define toascii(c) (((unsigned char)(c))&0x7f)
  
  static inline unsigned char __tolower(unsigned char c)
  {
  	if (isupper(c))
  		c -= 'A'-'a';
  	return c;
  }
  
  static inline unsigned char __toupper(unsigned char c)
  {
  	if (islower(c))
  		c -= 'a'-'A';
  	return c;
  }
  
  #define tolower(c) __tolower(c)
  #define toupper(c) __toupper(c)
75fb8f269   Andy Shevchenko   lib: make _tolowe...
53
54
55
56
57
58
59
60
  /*
   * Fast implementation of tolower() for internal usage. Do not use in your
   * code.
   */
  static inline char _tolower(const char c)
  {
  	return c | 0x20;
  }
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
61
  #endif