Subversion Repositories Kolibri OS

Rev

Rev 215 | 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 char _is[128];
  20.  
  21. #define isalnum(c)(_is[c] & ALNUM ) /* 'a'-'z', 'A'-'Z', '0'-'9' */
  22. #define isalpha(c)(_is[c] & ALPHA ) /* 'a'-'z', 'A'-'Z' */
  23. #define iscntrl(c)(_is[c] & CNTRL ) /* 0-31, 127 */
  24. #define isdigit(c)(_is[c] & DIGIT ) /* '0'-'9' */
  25. #define isgraph(c)(_is[c] & GRAPH ) /* '!'-'~' */
  26. #define islower(c)(_is[c] & LOWER ) /* 'a'-'z' */
  27. #define isprint(c)(_is[c] & PRINT ) /* ' '-'~' */
  28. #define ispunct(c)(_is[c] & PUNCT ) /* !alnum && !cntrl && !space */
  29. #define isspace(c)(_is[c] & BLANK ) /* HT, LF, VT, FF, CR, ' ' */
  30. #define isupper(c)(_is[c] & UPPER ) /* 'A'-'Z' */
  31. #define isxdigit(c)(_is[c] & XDIGIT) /* '0'-'9', 'a'-'f', 'A'-'F' */
  32.  
  33. #define isascii(c) (!((c)&(~0x7f)))
  34. #define toascii(c) ((c)&0x7f)
  35.  
  36.