ctype.h 2.7 KB

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