]> git.eshelyaron.com Git - emacs.git/commitdiff
* keymap.c (Fkey_binding): Use string position for string objects.
authorChong Yidong <cyd@stupidchicken.com>
Mon, 11 Sep 2006 13:03:40 +0000 (13:03 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Mon, 11 Sep 2006 13:03:40 +0000 (13:03 +0000)
src/ChangeLog
src/keymap.c

index f406681ec684e5e753b9880b7296da8611406a9f..fea9f668224af4bbab784e4fd4fb36283e9a3b9e 100644 (file)
@@ -1,3 +1,7 @@
+2006-09-11  Chong Yidong  <cyd@stupidchicken.com>
+
+       * keymap.c (Fkey_binding): Use string position for string objects.
+
 2006-09-11  Kim F. Storm  <storm@cua.dk>
 
        * keymap.c (Fkey_binding): Fix last change.
index c249c6de4068afe19eae6650d36778940f632579..8b99231a91d26844e528380e742e704445b08fdc 100644 (file)
@@ -1587,13 +1587,16 @@ is non-nil, `key-binding' returns the unmapped command.  */)
          && 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);