diff src/callint.c @ 16363:4097c59143f8

(Fcall_interactively): Bind cursor-in-echo-area to t for `k' and `K'.
author Richard M. Stallman <rms@gnu.org>
date Sat, 28 Sep 1996 20:38:18 +0000
parents 855c8d8ba0f0
children 6cfba7f41dca
line wrap: on
line diff
--- a/src/callint.c	Sat Sep 28 20:37:44 1996 +0000
+++ b/src/callint.c	Sat Sep 28 20:38:18 1996 +0000
@@ -29,6 +29,8 @@
 
 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 @@
 	  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.  */