summaryrefslogtreecommitdiff
path: root/src/callint.c
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1996-09-28 20:38:18 +0000
committerRichard M. Stallman <rms@gnu.org>1996-09-28 20:38:18 +0000
commitc631c234c097c887302e07b9997cedbe17e05308 (patch)
tree22fb15c6a3aaeedb32a76e79ef470fcad476c216 /src/callint.c
parent5dd9db3bbdb22b71459731423b693110756ab28c (diff)
downloademacs-c631c234c097c887302e07b9997cedbe17e05308.tar.gz
(Fcall_interactively): Bind cursor-in-echo-area to t for `k' and `K'.
Diffstat (limited to 'src/callint.c')
-rw-r--r--src/callint.c28
1 files changed, 20 insertions, 8 deletions
diff --git a/src/callint.c b/src/callint.c
index 3741a0930d1..5cedc443933 100644
--- a/src/callint.c
+++ b/src/callint.c
@@ -29,6 +29,8 @@ Boston, MA 02111-1307, USA. */
extern char *index ();
+extern Lisp_Object Qcursor_in_echo_area;
+
Lisp_Object Vcurrent_prefix_arg, Qminus, Qplus;
Lisp_Object Qcall_interactively;
Lisp_Object Vcommand_history;
@@ -522,17 +524,27 @@ Otherwise, this is done only if an arg is read using the minibuffer.")
break;
case 'k': /* Key sequence. */
- args[i] = Fread_key_sequence (build_string (callint_message),
- Qnil, Qnil, Qnil);
- teml = args[i];
- visargs[i] = Fkey_description (teml);
+ {
+ int speccount1 = specpdl_ptr - specpdl;
+ specbind (Qcursor_in_echo_area, Qt);
+ args[i] = Fread_key_sequence (build_string (callint_message),
+ Qnil, Qnil, Qnil);
+ unbind_to (speccount1, Qnil);
+ teml = args[i];
+ visargs[i] = Fkey_description (teml);
+ }
break;
case 'K': /* Key sequence to be defined. */
- args[i] = Fread_key_sequence (build_string (callint_message),
- Qnil, Qt, Qnil);
- teml = args[i];
- visargs[i] = Fkey_description (teml);
+ {
+ int speccount1 = specpdl_ptr - specpdl;
+ specbind (Qcursor_in_echo_area, Qt);
+ args[i] = Fread_key_sequence (build_string (callint_message),
+ Qnil, Qt, Qnil);
+ teml = args[i];
+ visargs[i] = Fkey_description (teml);
+ unbind_to (speccount1, Qnil);
+ }
break;
case 'e': /* The invoking event. */