home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / gnu / lucid / lemacs-19.6 / src / keymap.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-01-26  |  1009 b   |  28 lines

  1.  
  2. #ifndef _EMACS_KEYMAP_H_
  3. #define _EMACS_KEYMAP_H_
  4.  
  5. struct Lisp_Keymap {
  6.   /* The first two fields are really the header of a vector */
  7.   int size;            /* must be KEYMAP_SIZE */
  8.   struct Lisp_Vector *vec_next;    /* GC pointer */
  9.   Lisp_Object parent;        /* The keymap to be searched after this one */
  10.   Lisp_Object table;        /* The contents of this keymap */
  11.   Lisp_Object inverse_table;    /* The inverse mapping of the above */
  12.  
  13.   Lisp_Object sub_maps_cache;    /* Cache of directly inferior keymaps;
  14.                    This holds an alist, of the key and the
  15.                    maps, or the modifier bit and the map.
  16.                    If this is the symbol t, then the cache
  17.                    needs to be recomputed.
  18.                  */
  19.   int fullness;            /* How many entries there are in this table.
  20.                    This should be the same as the fullness
  21.                    of the `table', but hash.c is broken. */
  22.   Lisp_Object name;             /* Just for debugging convenience */
  23. };
  24.  
  25. #define KEYMAP_SIZE ((sizeof (struct Lisp_Keymap) / sizeof (Lisp_Object)) - 2)
  26.  
  27. #endif /* _EMACS_KEYMAP_H_ */
  28.