|
|
1.1 root 1: #include "copyright.h"
2:
3: /* $Header: Xkeymap.h,v 11.4 87/09/11 08:00:42 toddb Exp $ */
4: /* Copyright 1985, Massachusetts Institute of Technology */
5:
6: #define X_KEYMAP_MAGIC 0373 /* magic number which must be first byte
7: of a keymap file (was 0372 in V10) */
8:
9: /* KeyMap: contains single-byte character bindings, or indications
10: that a keycode is actually bound in the extension or runtime table */
11:
12: typedef short KeyMapEntry [8];
13: typedef unsigned char KeyMapElt [16];
14:
15: #define UNBOUND (unsigned char)'\377'
16: #define EXTENSION_BOUND (unsigned char)'\376'
17: #define RUNTIME_TABLE_BOUND (unsigned char)'\375'
18: #define SingleCharBound(c) ((unsigned char)c < (unsigned char)'\375')
19:
20: /* Extension: contains multiple-byte character bindings from
21: the keymap file. Not modified at runtime. */
22:
23: typedef struct {
24: unsigned char keycode;
25: unsigned char metabits;
26: unsigned char length;
27: } ExtensionHeader;
28:
29: #define ExtensionHeaderSize 3
30: /* since sizeof (ExtensionHeader) is 4 on some machines, e.g. Sun */
31:
32: /* macro used to iterate through the extension */
33: #define NextExtension(this) \
34: this = (ExtensionHeader *) ((char *)this + ExtensionHeaderSize + this->length)
35:
36: /* Compose: contains bindings from sequence of single-byte chars to single- or
37: multiple-byte character. */
38:
39: typedef struct {
40: unsigned char source_length;
41: unsigned char result_length;
42: } ComposeHeader;
43:
44: #define ComposeHeaderSize 2
45:
46: /* macro used to iterate through the compose sequences */
47: #define NextCompose(this) \
48: this = (ComposeHeader *) ((char *)this + ComposeHeaderSize + \
49: this->source_length + this->result_length)
50:
51: #define DontCareMetaBits 0377
52: /* appears in extension whenever the binding applies to all possible
53: combinations of shift/lock/meta/control keys */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.