]> git.eshelyaron.com Git - emacs.git/commitdiff
(cmd_error): Bind Vprint_level and Vprint_length.
authorKarl Heuer <kwzh@gnu.org>
Wed, 8 Mar 1995 00:45:37 +0000 (00:45 +0000)
committerKarl Heuer <kwzh@gnu.org>
Wed, 8 Mar 1995 00:45:37 +0000 (00:45 +0000)
src/keyboard.c

index b8c653b8fd7d17c3be52183cae163dd16443fa73..3f3ca70d3cba63234ea567b33a4684aa9835b7f5 100644 (file)
@@ -444,6 +444,8 @@ Lisp_Object Qextended_command_history;
 
 Lisp_Object Qpolling_period;
 
+extern Lisp_Object Vprint_level, Vprint_length;
+
 /* Address (if not 0) of EMACS_TIME to zero out if a SIGIO interrupt
    happens.  */
 EMACS_TIME *input_available_clear_time;
@@ -765,6 +767,8 @@ Lisp_Object
 cmd_error (data)
      Lisp_Object data;
 {
+  Lisp_Object old_level, old_length;
+
   Vstandard_output = Qt;
   Vstandard_input = Qt;
   Vexecuting_macro = Qnil;
@@ -773,7 +777,15 @@ cmd_error (data)
       clear_prefix_arg ();
       cancel_echoing ();
     }
+
+  /* Avoid unquittable loop if data contains a circular list.  */
+  old_level = Vprint_level;
+  old_length = Vprint_length;
+  XSETFASTINT(Vprint_level, 10);
+  XSETFASTINT(Vprint_length, 10);
   cmd_error_internal (data, 0);
+  Vprint_level = old_level;
+  Vprint_length = old_length;
 
   Vquit_flag = Qnil;