|
|
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.