# HG changeset patch # User Richard M. Stallman # Date 859751908 0 # Node ID fad065a280dcccf78b2549e2e1d63ee595eabc7d # Parent b712c50d2c84aeb9db598efd5d752905f1beaf79 (Faccessible_keymaps): When metizing, convert a string to a vector. But don't metize a character that is part of PREFIX. diff -r b712c50d2c84 -r fad065a280dc src/keymap.c --- a/src/keymap.c Sun Mar 30 19:06:27 1997 +0000 +++ b/src/keymap.c Sun Mar 30 19:58:28 1997 +0000 @@ -1327,6 +1327,8 @@ thismap = Fcdr (Fcar (tail)); last = make_number (XINT (Flength (thisseq)) - 1); is_metized = (XINT (last) >= 0 + /* Don't metize the last char of PREFIX. */ + && XINT (last) >= prefixlen && EQ (Faref (thisseq, last), meta_prefix_char)); for (; CONSP (thismap); thismap = XCONS (thismap)->cdr) @@ -1406,9 +1408,12 @@ turn it into a meta-ized keystroke. */ if (is_metized && INTEGERP (elt)) { - tem = Fcopy_sequence (thisseq); - Faset (tem, last, - make_number (XINT (elt) | meta_modifier)); + Lisp_Object element; + + element = thisseq; + tem = Fvconcat (1, &element); + XVECTOR (tem)->contents[XINT (last)] + = XINT (elt) | meta_modifier; /* This new sequence is the same length as thisseq, so stick it in the list right