diff src/redisplay.c @ 5348:39304a35b6b3

Don't commit suicide when an X device dies. 2011-01-30 Michael Sperber <mike@xemacs.org> * redisplay.h: * redisplay.c: (redisplay_cancel_ritual_suicide): * eval.c (throw_or_bomb_out_unsafe): * device-x.c (x_IO_error_handler): Don't commit suicide when an X device dies.
author Mike Sperber <sperber@deinprogramm.de>
date Sun, 30 Jan 2011 12:20:19 +0100
parents bc3ede8f29a8
children 0af042a0c116
line wrap: on
line diff
--- a/src/redisplay.c	Sun Jan 23 13:56:37 2011 +0000
+++ b/src/redisplay.c	Sun Jan 30 12:20:19 2011 +0100
@@ -6688,12 +6688,25 @@
   unbind_to (depth);
 }
 
+static int the_ritual_suicide_has_been_cancelled = 0;
+
+void
+redisplay_cancel_ritual_suicide(void)
+{
+  the_ritual_suicide_has_been_cancelled = 1;
+}
+
 #ifdef ERROR_CHECK_TRAPPING_PROBLEMS
 
 static Lisp_Object
 commit_ritual_suicide (Lisp_Object UNUSED (ceci_nest_pas_une_pipe))
 {
-  assert (!in_display);
+  if (!the_ritual_suicide_has_been_cancelled)
+    {
+      assert (!in_display);
+    }
+  else
+    the_ritual_suicide_has_been_cancelled = 0;
   return Qnil;
 }