]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fcall_interactively): Save and restore Vthis_command, Vthis_original_command,
authorRichard M. Stallman <rms@gnu.org>
Fri, 29 Aug 2003 16:15:31 +0000 (16:15 +0000)
committerRichard M. Stallman <rms@gnu.org>
Fri, 29 Aug 2003 16:15:31 +0000 (16:15 +0000)
real_this_command, and current_kboard->Vlast_command.

src/callint.c

index 4edb4201fa4b1e6786bd8c911006330839f41e3c..3b0d315db93d95a1704290f5b580786508882125 100644 (file)
@@ -41,6 +41,7 @@ Lisp_Object Qcall_interactively;
 Lisp_Object Vcommand_history;
 
 extern Lisp_Object Vhistory_length;
+extern Lisp_Object Vthis_original_command, real_this_command;
 
 Lisp_Object Vcommand_debug_status, Qcommand_debug_status;
 Lisp_Object Qenable_recursive_minibuffers;
@@ -291,6 +292,14 @@ supply if the command inquires which events were used to invoke it.  */)
   int key_count;
   int record_then_fail = 0;
 
+  Lisp_Object save_this_command, save_last_command;
+  Lisp_Object save_this_original_command, save_real_this_command;
+
+  save_this_command = Vthis_command;
+  save_this_original_command = Vthis_original_command;
+  save_real_this_command = real_this_command;
+  save_last_command = current_kboard->Vlast_command;
+
   if (NILP (keys))
     keys = this_command_keys, key_count = this_command_key_count;
   else
@@ -395,6 +404,12 @@ supply if the command inquires which events were used to invoke it.  */)
                XSETCDR (teml, Qnil);
            }
        }
+
+      Vthis_command = save_this_command;
+      Vthis_original_command = save_this_original_command;
+      real_this_command= save_real_this_command;
+      current_kboard->Vlast_command = save_last_command;
+
       single_kboard_state ();
       return apply1 (function, specs);
     }
@@ -841,6 +856,11 @@ supply if the command inquires which events were used to invoke it.  */)
   if (record_then_fail)
     Fbarf_if_buffer_read_only ();
 
+  Vthis_command = save_this_command;
+  Vthis_original_command = save_this_original_command;
+  real_this_command= save_real_this_command;
+  current_kboard->Vlast_command = save_last_command;
+
   single_kboard_state ();
 
   {