Subversion Repositories Kolibri OS

Rev

Rev 6432 | Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. /*
  2. ** All character classification functions except isascii().
  3. ** Integer argument (c) must be in ASCII range (0-127) for
  4. ** dependable answers.
  5. */
  6.  
  7. #define __ALNUM     1
  8. #define __ALPHA     2
  9. #define __CNTRL     4
  10. #define __DIGIT     8
  11. #define __GRAPH    16
  12. #define __LOWER    32
  13. #define __PRINT    64
  14. #define __PUNCT   128
  15. #define __BLANK   256
  16. #define __UPPER   512
  17. #define __XDIGIT 1024
  18.  
  19. extern unsigned short __is[128];
  20.  
  21. #define isalnum(c)(__is[c+1] & __ALNUM ) /* 'a'-'z', 'A'-'Z', '0'-'9' */
  22. #define isalpha(c)(__is[c+1] & __ALPHA ) /* 'a'-'z', 'A'-'Z' */
  23. #define iscntrl(c)(__is[c+1] & __CNTRL ) /* 0-31, 127 */
  24. #define isdigit(c)(__is[c+1] & __DIGIT ) /* '0'-'9' */
  25. #define isgraph(c)(__is[c+1] & __GRAPH ) /* '!'-'~' */
  26. #define islower(c)(__is[c+1] & __LOWER ) /* 'a'-'z' */
  27. #define isprint(c)(__is[c+1] & __PRINT ) /* ' '-'~' */
  28. #define ispunct(c)(__is[c+1] & __PUNCT ) /* !alnum && !cntrl && !space */
  29. #define isspace(c)(__is[c+1] & __BLANK ) /* HT, LF, VT, FF, CR, ' ' */
  30. #define isupper(c)(__is[c+1] & __UPPER ) /* 'A'-'Z' */
  31. #define isxdigit(c)(__is[c+1] & __XDIGIT) /* '0'-'9', 'a'-'f', 'A'-'F' */
  32.  
  33. #define isascii(c) (!((c)&(~0x7f)))
  34. #define toascii(c) ((c)&0x7f)
  35.  
  36. extern unsigned char tolower(unsigned char c);
  37. extern unsigned char toupper(unsigned char c);
  38.