comparison 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
comparison
equal deleted inserted replaced
72805:e5e7b6d129dd 72806:d148ed3e5bb4
1585 && CONSP (XCDR (ev)) 1585 && CONSP (XCDR (ev))
1586 && (pos = XCAR (XCDR (ev)), CONSP (pos)) 1586 && (pos = XCAR (XCDR (ev)), CONSP (pos))
1587 && XINT (Flength (pos)) == 10 1587 && XINT (Flength (pos)) == 10
1588 && INTEGERP (XCAR (XCDR (pos)))) 1588 && INTEGERP (XCAR (XCDR (pos))))
1589 { 1589 {
1590 Lisp_Object map, obj; 1590 Lisp_Object map, object;
1591 obj = Fnth (make_number(4), pos); 1591
1592 map = Fget_char_property (XCAR (XCDR (pos)), 1592 object = Fnth (make_number(4), pos);
1593 Qkeymap, 1593
1594 NILP (obj) ? 1594 if (CONSP (object))
1595 Fwindow_buffer (XCAR (pos)) 1595 map = Fget_char_property (XCDR (object), Qkeymap, XCAR (object));
1596 : XCAR (obj)); 1596 else
1597 map = Fget_char_property (XCAR (XCDR (pos)), Qkeymap,
1598 Fwindow_buffer (XCAR (pos)));
1599
1597 if (!NILP (Fkeymapp (map))) 1600 if (!NILP (Fkeymapp (map)))
1598 { 1601 {
1599 value = Flookup_key (map, key, accept_default); 1602 value = Flookup_key (map, key, accept_default);
1600 if (! NILP (value) && !INTEGERP (value)) 1603 if (! NILP (value) && !INTEGERP (value))
1601 goto done; 1604 goto done;