aboutsummaryrefslogtreecommitdiffstats
path: root/src/keymap.c
diff options
context:
space:
mode:
authorRichard M. Stallman <[email protected]>1994-02-19 06:29:30 +0000
committerRichard M. Stallman <[email protected]>1994-02-19 06:29:30 +0000
commitffab2bd62ccd45c33060f48788b52be32b5f158b (patch)
tree5731907c81bbab5f14c7d5936dc2b224199821db /src/keymap.c
parentfa6d54d9a08c0927d7da6b67b5f3f8c34f2b68d5 (diff)
(get_keyelt): Discard keyboard equivalents
stored in a menu keymap element.
Diffstat (limited to 'src/keymap.c')
-rw-r--r--src/keymap.c16
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)