Mercurial > emacs
changeset 73350:1a3368a80879
* keymap.c (Fkey_binding): Check Lisp_Object types before doing
XCAR and XINT.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Fri, 13 Oct 2006 01:45:37 +0000 |
parents | 43ccf7c7d312 |
children | 29547db9ad61 |
files | src/ChangeLog src/keymap.c |
diffstat | 2 files changed, 13 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Fri Oct 13 01:41:11 2006 +0000 +++ b/src/ChangeLog Fri Oct 13 01:45:37 2006 +0000 @@ -1,3 +1,8 @@ +2006-10-12 Chong Yidong <cyd@stupidchicken.com> + + * keymap.c (Fkey_binding): Check Lisp_Object types before doing + XCAR and XINT. + 2006-10-12 Romain Francoise <romain@orebokech.com> * image.c (xbm_read_bitmap_data): Delete extra semicolon.
--- a/src/keymap.c Fri Oct 13 01:41:11 2006 +0000 +++ b/src/keymap.c Fri Oct 13 01:45:37 2006 +0000 @@ -1610,13 +1610,12 @@ /* We are not interested in locations without event data */ - if (EVENT_HAS_PARAMETERS (event)) { - Lisp_Object kind; - - kind = EVENT_HEAD_KIND (EVENT_HEAD (event)); - if (EQ (kind, Qmouse_click)) - position = EVENT_START (event); - } + if (EVENT_HAS_PARAMETERS (event)) + { + Lisp_Object kind = EVENT_HEAD_KIND (EVENT_HEAD (event)); + if (CONSP (XCDR (event)) && EQ (kind, Qmouse_click)) + position = EVENT_START (event); + } } /* Key sequences beginning with mouse clicks @@ -1709,7 +1708,8 @@ pos = XCDR (string); string = XCAR (string); - if (XINT (pos) >= 0 + if (INTEGERP (pos) + && XINT (pos) >= 0 && XINT (pos) < SCHARS (string)) { map = Fget_text_property (pos, Qlocal_map, string);