changeset 12297:fe458a8ecfa2

(Vdefine_key_rebound_commands): New variable. (syms_of_keymap): Set up Lisp var. (Fdefine_key): Put new definition onto Vdefine_key_rebound_commands.
author Richard M. Stallman <rms@gnu.org>
date Sat, 17 Jun 1995 23:46:27 +0000
parents 005a5b596618
children 7c4b729e4b21
files src/keymap.c
diffstat 1 files changed, 15 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/keymap.c	Sat Jun 17 19:47:52 1995 +0000
+++ b/src/keymap.c	Sat Jun 17 23:46:27 1995 +0000
@@ -73,6 +73,12 @@
    documentation.  */
 Lisp_Object Vfunction_key_map;
 
+/* A list of all commands given new bindings since a certain time
+   when nil was stored here.
+   This is used to speed up recomputation of menu key equivalents
+   when Emacs starts up.   t means don't record anything here.  */
+Lisp_Object Vdefine_key_rebound_commands;
+
 Lisp_Object Qkeymapp, Qkeymap, Qnon_ascii;
 
 /* A char with the CHAR_META bit set in a vector or the 0200 bit set
@@ -594,6 +600,9 @@
   if (length == 0)
     return Qnil;
 
+  if (SYMBOLP (def) && !EQ (Vdefine_key_rebound_commands, Qt))
+    Vdefine_key_rebound_commands = Fcons (def, Vdefine_key_rebound_commands);
+
   GCPRO3 (keymap, key, def);
 
   if (VECTORP (key))
@@ -2381,6 +2390,12 @@
   Fset (intern ("ctl-x-map"), control_x_map);
   Ffset (intern ("Control-X-prefix"), control_x_map);
 
+  DEFVAR_LISP ("define-key-rebound-commands", &Vdefine_key_rebound_commands,
+    "List of commands given new key bindings recently.\n\
+This is used for internal purposes during Emacs startup;\n\
+don't alter it yourself.");
+  Vdefine_key_rebound_commands = Qt;
+
   DEFVAR_LISP ("minibuffer-local-map", &Vminibuffer_local_map,
     "Default keymap to use when reading from the minibuffer.");
   Vminibuffer_local_map = Fmake_sparse_keymap (Qnil);