changeset 42510:dde71e46eeeb

(Fcurrent_active_maps): Put the `keymap' property map first. (Fkey_binding): Try the `keymap' property map first. (Fdescribe_buffer_bindings): Show `keymap' property bindings before minor mode bindings.
author Richard M. Stallman <rms@gnu.org>
date Thu, 03 Jan 2002 21:28:04 +0000
parents 2a33faa5165e
children 4fcd61c30d0a
files src/keymap.c
diffstat 1 files changed, 23 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/src/keymap.c	Thu Jan 03 19:57:07 2002 +0000
+++ b/src/keymap.c	Thu Jan 03 21:28:04 2002 +0000
@@ -1347,15 +1347,15 @@
       if (!NILP (local))
 	keymaps = Fcons (local, keymaps);
 
-      local = get_local_map (PT, current_buffer, Qkeymap);
-      if (!NILP (local))
-	keymaps = Fcons (local, keymaps);
-
       nmaps = current_minor_maps (0, &maps);
 
       for (i = --nmaps; i >= 0; i--)
 	if (!NILP (maps[i]))
 	  keymaps = Fcons (maps[i], keymaps);
+
+      local = get_local_map (PT, current_buffer, Qkeymap);
+      if (!NILP (local))
+	keymaps = Fcons (local, keymaps);
     }
   
   return keymaps;
@@ -1399,6 +1399,14 @@
     { 
       Lisp_Object local;
 
+      local = get_local_map (PT, current_buffer, Qkeymap);
+      if (! NILP (local))
+	{
+	  value = Flookup_key (local, key, accept_default);
+	  if (! NILP (value) && !INTEGERP (value))
+	    RETURN_UNGCPRO (value);
+	}
+
       nmaps = current_minor_maps (0, &maps);
       /* Note that all these maps are GCPRO'd
 	 in the places where we found them.  */
@@ -1411,16 +1419,7 @@
 	      RETURN_UNGCPRO (value);
 	  }
 
-      local = get_local_map (PT, current_buffer, Qkeymap);
-      if (! NILP (local))
-	{
-	  value = Flookup_key (local, key, accept_default);
-	  if (! NILP (value) && !INTEGERP (value))
-	    RETURN_UNGCPRO (value);
-	}
-
       local = get_local_map (PT, current_buffer, Qlocal_map);
-
       if (! NILP (local))
 	{
 	  value = Flookup_key (local, key, accept_default);
@@ -2613,6 +2612,15 @@
       nmaps = current_minor_maps (&modes, &maps);
       Fset_buffer (outbuf);
 
+      start1 = get_local_map (BUF_PT (XBUFFER (buffer)),
+			      XBUFFER (buffer), Qkeymap);
+      if (!NILP (start1))
+	{
+	  describe_map_tree (start1, 1, shadow, prefix,
+			     "\f\n`keymap' Property Bindings", nomenu, 0, 0);
+	  shadow = Fcons (start1, shadow);
+	}
+
       /* Print the minor mode maps.  */
       for (i = 0; i < nmaps; i++)
 	{
@@ -2642,15 +2650,6 @@
 	}
 
       start1 = get_local_map (BUF_PT (XBUFFER (buffer)),
-			      XBUFFER (buffer), Qkeymap);
-      if (!NILP (start1))
-	{
-	  describe_map_tree (start1, 1, shadow, prefix,
-			     "\f\nChar Property Bindings", nomenu, 0, 0);
-	  shadow = Fcons (start1, shadow);
-	}
-
-      start1 = get_local_map (BUF_PT (XBUFFER (buffer)),
 			      XBUFFER (buffer), Qlocal_map);
       if (!NILP (start1))
 	{
@@ -2659,7 +2658,8 @@
 			       "\f\nMajor Mode Bindings", nomenu, 0, 0);
 	  else
 	    describe_map_tree (start1, 1, shadow, prefix,
-			       "\f\nChar Property Bindings", nomenu, 0, 0);
+			       "\f\n`local-map' Property Bindings",
+			       nomenu, 0, 0);
 
 	  shadow = Fcons (start1, shadow);
 	}