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 >
Wrap
C/C++ Source or Header
|
1990-05-23
|
1KB
|
43 lines
/*
* 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