diff options
author | Richard M. Stallman <[email protected]> | 1994-02-19 06:29:30 +0000 |
---|---|---|
committer | Richard M. Stallman <[email protected]> | 1994-02-19 06:29:30 +0000 |
commit | ffab2bd62ccd45c33060f48788b52be32b5f158b (patch) | |
tree | 5731907c81bbab5f14c7d5936dc2b224199821db /src/keymap.c | |
parent | fa6d54d9a08c0927d7da6b67b5f3f8c34f2b68d5 (diff) |
(get_keyelt): Discard keyboard equivalents
stored in a menu keymap element.
Diffstat (limited to 'src/keymap.c')
-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 399292a131..b95c04bc37 100644 --- a/src/keymap.c +++ b/src/keymap.c @@ -371,6 +371,16 @@ get_keyelt (object) if (XTYPE (object) == Lisp_Cons && XTYPE (XCONS (object)->car) == Lisp_String) object = XCONS (object)->cdr; + /* Also remove the vector that caches key equivalences, if any. */ + if (XTYPE (object) == Lisp_Cons + && XTYPE (XCONS (object)->car) == Lisp_Vector) + { + object = XCONS (object)->cdr; + /* Also remove the key's description. */ + if (XTYPE (object) == Lisp_Cons + && XTYPE (XCONS (object)->car) == Lisp_String) + object = XCONS (object)->cdr; + } } else @@ -1441,10 +1451,12 @@ ascii_sequence_p (seq) { Lisp_Object i; int len = XINT (Flength (seq)); - + for (XFASTINT (i) = 0; XFASTINT (i) < len; XFASTINT (i)++) { - Lisp_Object elt = Faref (seq, i); + Lisp_Object elt; + + elt = Faref (seq, i); if (XTYPE (elt) != Lisp_Int || (XUINT (elt) & ~CHAR_META) >= 0x80) |