diff options
author | Chong Yidong <cyd@stupidchicken.com> | 2006-09-11 13:03:40 +0000 |
---|---|---|
committer | Chong Yidong <cyd@stupidchicken.com> | 2006-09-11 13:03:40 +0000 |
commit | 91197db4cb05edc4ba9789a1c2339d23b37ee973 (patch) | |
tree | 2d14abedfc58b9f18cf2a50873bba73dc983edbb /src/keymap.c | |
parent | e027c6e48d4c199a70366a951b3c771e16f6a486 (diff) | |
download | emacs-91197db4cb05edc4ba9789a1c2339d23b37ee973.tar.gz |
* keymap.c (Fkey_binding): Use string position for string objects.
Diffstat (limited to 'src/keymap.c')
-rw-r--r-- | src/keymap.c | 17 |
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); |