1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-08 20:50:52 -08:00

(Faccessible_keymaps): Convert PREFIX to a vector

at the beginning, if it has any definition.
This commit is contained in:
Richard M. Stallman 1997-04-19 22:52:28 +00:00
parent d27497e33a
commit 67fc16a3bf

View file

@ -1300,7 +1300,26 @@ then the value includes only maps for prefixes that start with PREFIX.")
It might even give us a list that isn't a keymap. */
tem = get_keymap_1 (tem, 0, 0);
if (!NILP (tem))
maps = Fcons (Fcons (prefix, tem), Qnil);
{
/* Convert PREFIX to a vector now, so that later on
we don't have to deal with the possibility of a string. */
if (STRINGP (prefix))
{
int i;
Lisp_Object copy;
copy = Fmake_vector (make_number (XSTRING (prefix)->size), Qnil);
for (i = 0; i < XSTRING (prefix)->size; i++)
{
int c = XSTRING (prefix)->data[i];
if (c & 0200)
c ^= 0200 | meta_modifier;
XVECTOR (copy)->contents[i] = make_number (c);
}
prefix = copy;
}
maps = Fcons (Fcons (prefix, tem), Qnil);
}
else
return Qnil;
}