summaryrefslogtreecommitdiff
path: root/src
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
parente027c6e48d4c199a70366a951b3c771e16f6a486 (diff)
downloademacs-91197db4cb05edc4ba9789a1c2339d23b37ee973.tar.gz
* keymap.c (Fkey_binding): Use string position for string objects.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog4
-rw-r--r--src/keymap.c17
2 files changed, 14 insertions, 7 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index f406681ec68..fea9f668224 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -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.
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);