/* 1 means ignore all menu bindings entirely. */
int nomenus = !NILP (firstonly) && !EQ (firstonly, Qnon_ascii);
- /* If this command is remapped, then it has no key bindings
- of its own. */
- if (NILP (no_remap) && SYMBOLP (definition))
- {
- Lisp_Object tem;
- if (tem = Fcommand_remapping (definition, Qnil), !NILP (tem))
- return Qnil;
- }
-
found = keymaps;
while (CONSP (found))
{
found = Qnil;
sequences = Qnil;
+ /* If this command is remapped, then it has no key bindings
+ of its own. */
+ if (NILP (no_remap) && SYMBOLP (definition))
+ {
+ Lisp_Object kmaps, map, remap;
+
+ for (kmaps = maps; !NILP (kmaps); kmaps = Fcdr (kmaps))
+ if (map = Fcdr (Fcar (kmaps)), KEYMAPP (map))
+ {
+ ASET (command_remapping_vector, 1, definition);
+ remap = Flookup_key (map, command_remapping_vector, Qnil);
+ if (!NILP (remap) && !INTEGERP (remap))
+ RETURN_UNGCPRO (Qnil);
+ }
+ }
+
for (; !NILP (maps); maps = Fcdr (maps))
{
/* Key sequence to reach map, and the map that it reaches */