1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-02-01 20:06:00 +00:00

(Fexecute_extended_command): Delete junk lines.

Print the key bindings after the command, temporarily;
then bring back the previous message.
This commit is contained in:
Richard M. Stallman 1996-09-11 19:24:19 +00:00
parent aeb3e6326a
commit 5434fce64e

View File

@ -6901,11 +6901,10 @@ DEFUN ("execute-extended-command", Fexecute_extended_command, Sexecute_extended_
(prefixarg)
Lisp_Object prefixarg;
{
defsubr (&Sfocus_frame);
defsubr (&Sunfocus_frame);
Lisp_Object function;
char buf[40];
Lisp_Object saved_keys;
Lisp_Object bindings, value;
struct gcpro gcpro1, gcpro2;
saved_keys = Fvector (this_command_key_count,
@ -6988,24 +6987,46 @@ DEFUN ("execute-extended-command", Fexecute_extended_command, Sexecute_extended_
if (!NILP (Vsuggest_key_bindings)
&& NILP (Vexecuting_macro)
&& SYMBOLP (function))
bindings = Fwhere_is_internal (function, Voverriding_local_map,
Qt, Qnil);
else
bindings = Qnil;
value = Qnil;
GCPRO2 (bindings, value);
value = Fcommand_execute (function, Qt, Qnil, Qnil);
/* If the command has a key binding, print it now. */
if (!NILP (bindings))
{
Lisp_Object bindings;
bindings = Fwhere_is_internal (function, Voverriding_local_map,
Qt, Qnil);
if (!NILP (bindings))
/* But first wait, and skip the message if there is input. */
if (!NILP (Fsit_for ((NUMBERP (Vsuggest_key_bindings)
? Vsuggest_key_bindings : make_number (2)),
Qnil, Qnil)))
{
message ("You can run the command `%s' by typing %s",
Lisp_Object binding;
char *newmessage;
char *oldmessage = echo_area_glyphs;
int oldmessage_len = echo_area_glyphs_length;
binding = Fkey_description (bindings);
newmessage
= (char *) alloca (XSYMBOL (function)->name->size
+ XSTRING (binding)->size
+ 100);
sprintf (newmessage, "You can run the command `%s' by typing %s",
XSYMBOL (function)->name->data,
XSTRING (Fkey_description (bindings))->data);
Fsit_for ((NUMBERP (Vsuggest_key_bindings)
? Vsuggest_key_bindings : make_number (2)),
Qnil, Qnil);
XSTRING (binding)->data);
message1_nolog (newmessage);
if (!NILP (Fsit_for ((NUMBERP (Vsuggest_key_bindings)
? Vsuggest_key_bindings : make_number (2)),
Qnil, Qnil)))
message2_nolog (oldmessage, oldmessage_len);
}
}
return Fcommand_execute (function, Qt, Qnil, Qnil);
RETURN_UNGCPRO (value);
}
/* Find the set of keymaps now active.