Commit 44a4a59b authored by Richard M. Stallman's avatar Richard M. Stallman
Browse files

(Faccessible_keymaps): Use PREFIX to set loop starting

point; don't even consider maps except those reached via prefix.
parent 23faf38f
......@@ -1164,9 +1164,23 @@ then the value includes only maps for prefixes that start with PREFIX.")
if (!NILP (prefix))
prefixlen = XINT (Flength (prefix));
maps = Fcons (Fcons (Fmake_vector (make_number (0), Qnil),
get_keymap (startmap)),
Qnil);
if (!NILP (prefix))
{
/* If a prefix was specified, start with the keymap (if any) for
that prefix, so we don't waste time considering other prefixes. */
Lisp_Object tem;
tem = Flookup_key (startmap, prefix, Qt);
/* If PREFIX is reasonable, Flookup_key should give a keymap or nil.
For any other value it is ok to get an error here. */
if (!NILP (tem))
maps = Fcons (Fcons (prefix, get_keymap (tem)), Qnil);
else
return Qnil;
}
else
maps = Fcons (Fcons (Fmake_vector (make_number (0), Qnil),
get_keymap (startmap)),
Qnil);
/* For each map in the list maps,
look at any other maps it points to,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment