home *** CD-ROM | disk | FTP | other *** search
- /*
- * h/chardef.h: character set specific #defines for mg 2a Warning: System
- * specific ones exist
- */
-
- #ifndef CHARMASK
- /*
- * casting should be at least as efficent as anding with 0xff, and won't have
- * the size problems. Override in sysdef.h if no unsigned char type.
- */
- #define CHARMASK(c) ((unsigned char) (c))
- #endif
-
- /*
- * These flags, and the macros below them, make up a do-it-yourself set of
- * "ctype" macros that understand the DEC multinational set, and let me ask a
- * slightly different set of questions.
- */
- #define _W 0x01 /* Word. */
- #define _U 0x02 /* Upper case letter. */
- #define _L 0x04 /* Lower case letter. */
- #define _C 0x08 /* Control. */
- #define _P 0x10 /* end of sentence punctuation */
- #define _D 0x20 /* is decimal digit */
-
- #define ISWORD(c) ((cinfo[CHARMASK(c)]&_W)!=0)
- #define ISCTRL(c) ((cinfo[CHARMASK(c)]&_C)!=0)
- #define ISUPPER(c) ((cinfo[CHARMASK(c)]&_U)!=0)
- #define ISLOWER(c) ((cinfo[CHARMASK(c)]&_L)!=0)
- #define ISEOSP(c) ((cinfo[CHARMASK(c)]&_P)!=0)
- #define ISDIGIT(c) ((cinfo[CHARMASK(c)]&_D)!=0)
- #define TOUPPER(c) ((c)-0x20)
- #define TOLOWER(c) ((c)+0x20)
-
- /*
- * generally useful thing for chars
- */
- #define CCHR(x) ((x) ^ 0x40) /* CCHR('?') == DEL */
-
- #ifndef METACH
- #define METACH CCHR('[')
- #endif
-