[BACK]Return to chrdef.h CVS log [TXT][DIR] Up to [local] / src / usr.bin / mg

File: [local] / src / usr.bin / mg / chrdef.h (download)

Revision 1.3, Mon Jan 29 01:58:06 2001 UTC (23 years, 3 months ago) by niklas
Branch: MAIN
CVS Tags: OPENBSD_3_0_BASE, OPENBSD_3_0, OPENBSD_2_9_BASE, OPENBSD_2_9
Changes since 1.2: +2 -0 lines

$OpenBSD$

/*	$OpenBSD: chrdef.h,v 1.3 2001/01/29 01:58:06 niklas Exp $	*/

/*
 * sys/default/chardef.h: character set specific #defines for Mg 2a
 * Warning: System specific ones exist
 */

/*
 * 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.
 */
#ifndef	CHARMASK
#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

#ifdef XKEYS
#define	K00		256
#define	K01		257
#define	K02		258
#define	K03		259
#define	K04		260
#define	K05		261
#define	K06		262
#define	K07		263
#define	K08		264
#define	K09		265
#define	K0A		266
#define	K0B		267
#define	K0C		268
#define	K0D		269
#define	K0E		270
#define	K0F		271
#define	K10		272
#define	K11		273
#define	K12		274
#define	K13		275
#define	K14		276
#define	K15		277
#define	K16		278
#define	K17		279
#define	K18		280
#define	K19		281
#define	K1A		282
#define	K1B		283
#define	K1C		284
#define	K1D		285
#define	K1E		286
#define	K1F		287
#endif