Annotation of researchv9/X11/src/X.V11R1/lib/X/Xkeymap.h, revision 1.1.1.1

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 */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.