[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.9, Thu Mar 19 21:22:15 2015 UTC (9 years, 2 months ago) by bcallah
Branch: MAIN
Changes since 1.8: +2 -3 lines

Clean up the includes in mg.
This does the following:
Moves all POSIX headers from sysdef.h into the individual .c files so that
each file now only includes what it needs. All headers are properly sorted.
Moves the remainder of sysdef.h to other files (mostly def.h) and deletes
sysdef.h now that it's no longer contains anything.
Tweak a comment that references sysdef.h so that it no longer does that.
ok florian@

/*	$OpenBSD: chrdef.h,v 1.9 2015/03/19 21:22:15 bcallah Exp $	*/

/* This file is in the public domain. */

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

/*
 * Casting should be at least as efficient as anding with 0xff,
 * and won't have the size problems.
 */
#define	CHARMASK(c)	((unsigned char) (c))

/*
 * 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 _MG_W	0x01		/* Word.			 */
#define _MG_U	0x02		/* Upper case letter.		 */
#define _MG_L	0x04		/* Lower case letter.		 */
#define _MG_C	0x08		/* Control.			 */
#define _MG_P	0x10		/* end of sentence punctuation	 */
#define	_MG_D	0x20		/* is decimal digit		 */

#define ISWORD(c)	((cinfo[CHARMASK(c)]&_MG_W)!=0)
#define ISCTRL(c)	((cinfo[CHARMASK(c)]&_MG_C)!=0)
#define ISUPPER(c)	((cinfo[CHARMASK(c)]&_MG_U)!=0)
#define ISLOWER(c)	((cinfo[CHARMASK(c)]&_MG_L)!=0)
#define ISEOSP(c)	((cinfo[CHARMASK(c)]&_MG_P)!=0)
#define	ISDIGIT(c)	((cinfo[CHARMASK(c)]&_MG_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

#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