diff src/keymap.c @ 90737:95d0cdf160ea

Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 586-614) - Update from CVS - Update from erc--emacs--22 - Merge from gnus--rel--5.10 - Merge from erc--main--0 - Make byte compiler correctly write circular constants * gnus--rel--5.10 (patch 186-196) - Update from CVS - Merge from emacs--devo--0 Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-162
author Miles Bader <miles@gnu.org>
date Fri, 26 Jan 2007 06:16:11 +0000
parents bc10a33dd40b 42d89518722a
children ec58e5c426ef
line wrap: on
line diff
--- a/src/keymap.c	Fri Jan 26 02:30:28 2007 +0000
+++ b/src/keymap.c	Fri Jan 26 06:16:11 2007 +0000
@@ -1,7 +1,7 @@
 /* Manipulation of keymaps
    Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995,
                  1998, 1999, 2000, 2001, 2002, 2003, 2004,
-                 2005, 2006 Free Software Foundation, Inc.
+                 2005, 2006, 2007 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -3452,9 +3452,13 @@
 	      tem = shadow_lookup (shadow, kludge, Qt);
 	      if (!NILP (tem))
 		{
+		  /* If both bindings are keymaps, this key is a prefix key,
+		     so don't say it is shadowed.  */
+		  if (KEYMAPP (definition) && KEYMAPP (tem))
+		    ;
 		  /* Avoid generating duplicate entries if the
-		     shadowed binding has the same definition. */
-		  if (mention_shadow && !EQ (tem, definition))
+		     shadowed binding has the same definition.  */
+		  else if (mention_shadow && !EQ (tem, definition))
 		    this_shadowed = 1;
 		  else
 		    continue;