diff src/keymap.c @ 72806:d148ed3e5bb4

* keymap.c (Fkey_binding): Use string position for string objects.
author Chong Yidong <cyd@stupidchicken.com>
date Mon, 11 Sep 2006 13:03:40 +0000
parents 93843380f78b
children 25c755416160 a1a25ac6c88a
line wrap: on
line diff
--- a/src/keymap.c	Mon Sep 11 11:15:54 2006 +0000
+++ b/src/keymap.c	Mon Sep 11 13:03:40 2006 +0000
@@ -1587,13 +1587,16 @@
 	  && XINT (Flength (pos)) == 10
 	  && INTEGERP (XCAR (XCDR (pos))))
 	{
-	  Lisp_Object map, obj;
-	  obj = Fnth (make_number(4), pos);
-	  map = Fget_char_property (XCAR (XCDR (pos)),
-				    Qkeymap,
-				    NILP (obj) ?
-				    Fwindow_buffer (XCAR (pos))
-				    : XCAR (obj));
+	  Lisp_Object map, object;
+
+	  object = Fnth (make_number(4), pos);
+
+	  if (CONSP (object))
+	    map = Fget_char_property (XCDR (object), Qkeymap, XCAR (object));
+	  else
+	    map = Fget_char_property (XCAR (XCDR (pos)), Qkeymap,
+				      Fwindow_buffer (XCAR (pos)));
+
 	  if (!NILP (Fkeymapp (map)))
 	    {
 	      value = Flookup_key (map, key, accept_default);