Changeset View
Changeset View
Standalone View
Standalone View
contrib/mg/chrdef.h
- This file was added.
/* $OpenBSD: chrdef.h,v 1.10 2015/03/25 12:29:03 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 */ | |||||
#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 |