]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fcall_interactively): Bind cursor-in-echo-area to t for `k' and `K'.
authorRichard M. Stallman <rms@gnu.org>
Sat, 28 Sep 1996 20:38:18 +0000 (20:38 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sat, 28 Sep 1996 20:38:18 +0000 (20:38 +0000)
src/callint.c

index 3741a0930d1f383d1da35ae41cfd9f59a5ba768b..5cedc443933b501f102875556ef1a0be5ef9dacb 100644 (file)
@@ -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.  */