diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/keymap.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/keymap.c b/src/keymap.c index 399292a1314..b95c04bc37f 100644 --- a/src/keymap.c +++ b/src/keymap.c | |||
| @@ -371,6 +371,16 @@ get_keyelt (object) | |||
| 371 | if (XTYPE (object) == Lisp_Cons | 371 | if (XTYPE (object) == Lisp_Cons |
| 372 | && XTYPE (XCONS (object)->car) == Lisp_String) | 372 | && XTYPE (XCONS (object)->car) == Lisp_String) |
| 373 | object = XCONS (object)->cdr; | 373 | object = XCONS (object)->cdr; |
| 374 | /* Also remove the vector that caches key equivalences, if any. */ | ||
| 375 | if (XTYPE (object) == Lisp_Cons | ||
| 376 | && XTYPE (XCONS (object)->car) == Lisp_Vector) | ||
| 377 | { | ||
| 378 | object = XCONS (object)->cdr; | ||
| 379 | /* Also remove the key's description. */ | ||
| 380 | if (XTYPE (object) == Lisp_Cons | ||
| 381 | && XTYPE (XCONS (object)->car) == Lisp_String) | ||
| 382 | object = XCONS (object)->cdr; | ||
| 383 | } | ||
| 374 | } | 384 | } |
| 375 | 385 | ||
| 376 | else | 386 | else |
| @@ -1441,10 +1451,12 @@ ascii_sequence_p (seq) | |||
| 1441 | { | 1451 | { |
| 1442 | Lisp_Object i; | 1452 | Lisp_Object i; |
| 1443 | int len = XINT (Flength (seq)); | 1453 | int len = XINT (Flength (seq)); |
| 1444 | 1454 | ||
| 1445 | for (XFASTINT (i) = 0; XFASTINT (i) < len; XFASTINT (i)++) | 1455 | for (XFASTINT (i) = 0; XFASTINT (i) < len; XFASTINT (i)++) |
| 1446 | { | 1456 | { |
| 1447 | Lisp_Object elt = Faref (seq, i); | 1457 | Lisp_Object elt; |
| 1458 | |||
| 1459 | elt = Faref (seq, i); | ||
| 1448 | 1460 | ||
| 1449 | if (XTYPE (elt) != Lisp_Int | 1461 | if (XTYPE (elt) != Lisp_Int |
| 1450 | || (XUINT (elt) & ~CHAR_META) >= 0x80) | 1462 | || (XUINT (elt) & ~CHAR_META) >= 0x80) |