ctype.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #ifndef __CTYPE
  2. #define __CTYPE
  3. #pragma lib "/$M/lib/ape/libap.a"
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. extern int isalnum(int);
  8. extern int isalpha(int);
  9. extern int iscntrl(int);
  10. extern int isdigit(int);
  11. extern int isgraph(int);
  12. extern int islower(int);
  13. extern int isprint(int);
  14. extern int ispunct(int);
  15. extern int isspace(int);
  16. extern int isupper(int);
  17. extern int isxdigit(int);
  18. extern int tolower(int);
  19. extern int toupper(int);
  20. #ifdef __cplusplus
  21. }
  22. #endif
  23. enum
  24. {
  25. _ISupper = 01, /* UPPERCASE. */
  26. _ISlower = 02, /* lowercase. */
  27. _ISdigit = 04, /* Numeric. */
  28. _ISspace = 010, /* Whitespace. */
  29. _ISpunct = 020, /* Punctuation. */
  30. _IScntrl = 040, /* Control character. */
  31. _ISblank = 0100, /* Blank (usually SPC and TAB). */
  32. _ISxdigit = 0200, /* Hexadecimal numeric. */
  33. };
  34. extern unsigned char _ctype[];
  35. #define isalnum(c) (_ctype[(unsigned char)(c)]&(_ISupper|_ISlower|_ISdigit))
  36. #define isalpha(c) (_ctype[(unsigned char)(c)]&(_ISupper|_ISlower))
  37. #define iscntrl(c) (_ctype[(unsigned char)(c)]&_IScntrl)
  38. #define isdigit(c) (_ctype[(unsigned char)(c)]&_ISdigit)
  39. #define isgraph(c) (_ctype[(unsigned char)(c)]&(_ISpunct|_ISupper|_ISlower|_ISdigit))
  40. #define islower(c) (_ctype[(unsigned char)(c)]&_ISlower)
  41. #define isprint(c) (_ctype[(unsigned char)(c)]&(_ISpunct|_ISupper|_ISlower|_ISdigit|_ISblank))
  42. #define ispunct(c) (_ctype[(unsigned char)(c)]&_ISpunct)
  43. #define isspace(c) (_ctype[(unsigned char)(c)]&_ISspace)
  44. #define isupper(c) (_ctype[(unsigned char)(c)]&_ISupper)
  45. #define isxdigit(c) (_ctype[(unsigned char)(c)]&_ISxdigit)
  46. #ifdef _BSD_EXTENSION
  47. #define isascii(c) (((unsigned int)(c))<0x80)
  48. #endif
  49. #endif /* __CTYPE */