summaryrefslogtreecommitdiff
path: root/src/keymap.c
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2006-09-11 13:03:40 +0000
committerChong Yidong <cyd@stupidchicken.com>2006-09-11 13:03:40 +0000
commit91197db4cb05edc4ba9789a1c2339d23b37ee973 (patch)
tree2d14abedfc58b9f18cf2a50873bba73dc983edbb /src/keymap.c
parente027c6e48d4c199a70366a951b3c771e16f6a486 (diff)
downloademacs-91197db4cb05edc4ba9789a1c2339d23b37ee973.tar.gz
* keymap.c (Fkey_binding): Use string position for string objects.
Diffstat (limited to 'src/keymap.c')
-rw-r--r--src/keymap.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/keymap.c b/src/keymap.c
index c249c6de406..8b99231a91d 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -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);