home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 10 / Fresh_Fish_10_2352.bin / useful / util / edit / mg / src.lzh / h / chrdef.h < prev    next >
C/C++ Source or Header  |  1990-05-23  |  1KB  |  43 lines

  1. /*
  2.  * h/chardef.h: character set specific #defines for mg 2a Warning: System
  3.  * specific ones exist 
  4.  */
  5.  
  6. #ifndef    CHARMASK
  7. /*
  8.  * casting should be at least as efficent as anding with 0xff, and won't have
  9.  * the size problems.  Override in sysdef.h if no unsigned char type. 
  10.  */
  11. #define    CHARMASK(c)    ((unsigned char) (c))
  12. #endif
  13.  
  14. /*
  15.  * These flags, and the macros below them, make up a do-it-yourself set of
  16.  * "ctype" macros that understand the DEC multinational set, and let me ask a
  17.  * slightly different set of questions. 
  18.  */
  19. #define _W    0x01        /* Word.             */
  20. #define _U    0x02        /* Upper case letter.         */
  21. #define _L    0x04        /* Lower case letter.         */
  22. #define _C    0x08        /* Control.             */
  23. #define _P    0x10        /* end of sentence punctuation     */
  24. #define    _D    0x20        /* is decimal digit         */
  25.  
  26. #define ISWORD(c)    ((cinfo[CHARMASK(c)]&_W)!=0)
  27. #define ISCTRL(c)    ((cinfo[CHARMASK(c)]&_C)!=0)
  28. #define ISUPPER(c)    ((cinfo[CHARMASK(c)]&_U)!=0)
  29. #define ISLOWER(c)    ((cinfo[CHARMASK(c)]&_L)!=0)
  30. #define ISEOSP(c)    ((cinfo[CHARMASK(c)]&_P)!=0)
  31. #define    ISDIGIT(c)    ((cinfo[CHARMASK(c)]&_D)!=0)
  32. #define TOUPPER(c)    ((c)-0x20)
  33. #define TOLOWER(c)    ((c)+0x20)
  34.  
  35. /*
  36.  * generally useful thing for chars 
  37.  */
  38. #define CCHR(x)        ((x) ^ 0x40)    /* CCHR('?') == DEL */
  39.  
  40. #ifndef    METACH
  41. #define    METACH    CCHR('[')
  42. #endif
  43.