diff src/eval.c @ 90365:a802c5505156

Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-43 Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 148-156) - Update from CVS - Merge from gnus--rel--5.10 - Remove nick-abbrevs stuff from rcirc.el - rcirc.el update from Ryan Yeske * gnus--rel--5.10 (patch 57) - Copy/update icons from Gnus trunk
author Miles Bader <miles@gnu.org>
date Mon, 13 Mar 2006 12:19:58 +0000
parents 5754737d1e04 947598ed954a
children 72dea2ff0142
line wrap: on
line diff
--- a/src/eval.c	Fri Mar 10 23:46:54 2006 +0000
+++ b/src/eval.c	Mon Mar 13 12:19:58 2006 +0000
@@ -1259,6 +1259,12 @@
     }
   while (! last_time);
 
+#if HAVE_X_WINDOWS
+  /* If x_catch_errors was done, turn it off now.
+     (First we give unbind_to a chance to do that.)  */
+  x_fully_uncatch_errors ();
+#endif
+
   byte_stack_list = catch->byte_stack;
   gcprolist = catch->gcpro;
 #ifdef DEBUG_GCPRO
@@ -1435,8 +1441,10 @@
   struct catchtag c;
   struct handler h;
 
-#if 0 /* We now handle interrupt_input_blocked properly.
-	 What we still do not handle is exiting a signal handler.  */
+  /* Since Fsignal will close off all calls to x_catch_errors,
+     we will get the wrong results if some are not closed now.  */
+#if HAVE_X_WINDOWS
+  if (x_catching_errors ())
     abort ();
 #endif
 
@@ -1481,6 +1489,13 @@
   struct catchtag c;
   struct handler h;
 
+  /* Since Fsignal will close off all calls to x_catch_errors,
+     we will get the wrong results if some are not closed now.  */
+#if HAVE_X_WINDOWS
+  if (x_catching_errors ())
+    abort ();
+#endif
+
   c.tag = Qnil;
   c.val = Qnil;
   c.backlist = backtrace_list;
@@ -1525,6 +1540,13 @@
   struct catchtag c;
   struct handler h;
 
+  /* Since Fsignal will close off all calls to x_catch_errors,
+     we will get the wrong results if some are not closed now.  */
+#if HAVE_X_WINDOWS
+  if (x_catching_errors ())
+    abort ();
+#endif
+
   c.tag = Qnil;
   c.val = Qnil;
   c.backlist = backtrace_list;