-
Notifications
You must be signed in to change notification settings - Fork 1
/
chrdef.h
81 lines (73 loc) · 1.92 KB
/
chrdef.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/* $OpenBSD: chrdef.h,v 1.7 2005/06/14 18:14:40 kjell 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. Override in sysdef.h if no
* unsigned char type.
*/
#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
#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