ctype.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #ifndef __CTYPE_H
  2. #define __CTYPE_H
  3. #ifndef KERNEL_NEW
  4. #include <default.h>
  5. #endif
  6. /* NOTE: These macros use GNU C extensions for defining safe and "smart" */
  7. /* macros, so they are not portable to other C dialects */
  8. extern char _extalnum_list[];
  9. extern char _extpunct_list[];
  10. /* Begin Auto-Generated Part */
  11. #define _tolower(c) ((c)+'a'-'A')
  12. #define _toupper(c) ((c)+'A'-'a')
  13. #define isalnum(c) ({register short __c=(c);(__c>='0'&&__c<='9')||(__c>='A'&&__c<='Z')||(__c>='a'&&__c<='z');})
  14. #define isalpha(c) ({register short __c=(c);(__c>='A'&&__c<='Z')||(__c>='a'&&__c<='z');})
  15. #define isascii(c) ((unsigned short)(c)<128)
  16. #define iscntrl(c) ((unsigned short)(c)<14)
  17. #define isdigit(c) ({register short __c=(c);__c>='0'&&__c<='9';})
  18. #define isextalnum(c) ({register short __c=(c);(unsigned short)__c<256&&_extalnum_list[__c>>3]&(1<<(__c&7));})
  19. #define isextlower(c) ({register short __c=(c);(__c>='a'&&__c<='z')||(__c>=224&&__c<=254&&__c!=247);})
  20. #define isextpunct(c) ({register short __c=(c);(unsigned short)__c<256&&_extpunct_list[__c>>3]&(1<<(__c&7));})
  21. #define isextupper(c) ({register short __c=(c);(__c>='A'&&__c<='Z')||(__c>=192&&__c<=222&&__c!=215);})
  22. #define isfrgn(c) ({register short __c=(c);(__c>=128&&__c<148)||(__c==181||__c>=192)&&(__c<=255&&__c!=215&&__c!=247);)}
  23. #define isfrgnalnum(c) ({register short __c=(c);(__c>=128&&__c<=148&&__c!=140)||__c==181||(__c>=192&&__c<=255&&__c!=215&&__c!=247);})
  24. #define isfrgnlower(c) ({register short __c=(c);__c>=224&&__c<=254&&__c!=247;})
  25. #define isfrgnupper(c) ({register short __c=(c);__c>=192&&__c<=222&&__c!=215;})
  26. #define isgraph(c) ({register short __c=(c);__c==11||(__c>13&&__c<256&&__c!=32);})
  27. #define isGreek(c) ({register short __c=(c);(__c>=128&&__c<=148)||__c==181;})
  28. #define islower(c) ({register short __c=(c);__c>='a'&&__c<='z';})
  29. #define isprint(c) ({register short __c=(c);__c==11||(__c>13&&__c<256);})
  30. #define ispunct(c) ({register short __c=(c);__c>=33&&__c<=127&&!((__c>='0'&&__c<='9')||(__c>='A'&&__c<='Z')||(__c>='a'&&__c<='z'));})
  31. #define isspace(c) ({register short __c=(c);(__c>=9&&__c<=13)||__c==32;})
  32. #define isupper(c) ({register short __c=(c);__c>='A'&&__c<='Z';})
  33. #define isxdigit(c) ({register short __c=(c);(__c>='0'&&__c<='9')||(__c>='A'&&__c<='F')||(__c>='a'&&__c<='f');})
  34. #define toascii(c) ((c)&0x7F)
  35. #define toextlower(c) ({register short __c=(c);((__c>='A'&&__c<='Z')||(__c>=192&&__c<=222&&__c!=215))?(__c+'a'-'A'):__c;})
  36. #define toextupper(c) ({register short __c=(c);((__c>='a'&&__c<='z')||(__c>=224&&__c<=254&&__c!=247))?(__c+'A'-'a'):__c;})
  37. #define tolower(c) ({register short __c=(c);(__c>='A'&&__c<='Z')?(__c+'a'-'A'):__c;})
  38. #define toupper(c) ({register short __c=(c);(__c>='a'&&__c<='z')?(__c+'A'-'a'):__c;})
  39. /* End Auto-Generated Part */
  40. #endif