comparison src/eval.c @ 83536:0014f454c421

Fix x_catch_errors-related abort after X disconnects. (Reported by Dan Nicolaescu). * src/xterm.h: Remove declaration for x_fully_uncatch_errors. * src/xterm.c (x_fully_uncatch_errors): Disable definition. * src/eval.c (unwind_to_catch): Don't call x_fully_uncatch_errors. (internal_condition_case, internal_condition_case_1) (internal_condition_case_2): Don't abort when x_catching_errors. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-576
author Karoly Lorentey <lorentey@elte.hu>
date Sat, 29 Jul 2006 18:41:57 +0000
parents da0099bc0ba4
children 2d56e13fd23d
comparison
equal deleted inserted replaced
83535:6c8cebe86511 83536:0014f454c421
1259 while (! last_time); 1259 while (! last_time);
1260 1260
1261 #if HAVE_X_WINDOWS 1261 #if HAVE_X_WINDOWS
1262 /* If x_catch_errors was done, turn it off now. 1262 /* If x_catch_errors was done, turn it off now.
1263 (First we give unbind_to a chance to do that.) */ 1263 (First we give unbind_to a chance to do that.) */
1264 #if 0 /* This would disable x_catch_errors after x_connection_closed.
1265 * The catch must remain in effect during that delicate
1266 * state. --lorentey */
1264 x_fully_uncatch_errors (); 1267 x_fully_uncatch_errors ();
1268 #endif
1265 #endif 1269 #endif
1266 1270
1267 byte_stack_list = catch->byte_stack; 1271 byte_stack_list = catch->byte_stack;
1268 gcprolist = catch->gcpro; 1272 gcprolist = catch->gcpro;
1269 #ifdef DEBUG_GCPRO 1273 #ifdef DEBUG_GCPRO
1437 struct catchtag c; 1441 struct catchtag c;
1438 struct handler h; 1442 struct handler h;
1439 1443
1440 /* Since Fsignal will close off all calls to x_catch_errors, 1444 /* Since Fsignal will close off all calls to x_catch_errors,
1441 we will get the wrong results if some are not closed now. */ 1445 we will get the wrong results if some are not closed now. */
1446 #if 0 /* Fsignal doesn't do that anymore. --lorentey */
1442 #if HAVE_X_WINDOWS 1447 #if HAVE_X_WINDOWS
1443 if (x_catching_errors ()) 1448 if (x_catching_errors ())
1444 abort (); 1449 abort ();
1450 #endif
1445 #endif 1451 #endif
1446 1452
1447 c.tag = Qnil; 1453 c.tag = Qnil;
1448 c.val = Qnil; 1454 c.val = Qnil;
1449 c.backlist = backtrace_list; 1455 c.backlist = backtrace_list;
1485 struct catchtag c; 1491 struct catchtag c;
1486 struct handler h; 1492 struct handler h;
1487 1493
1488 /* Since Fsignal will close off all calls to x_catch_errors, 1494 /* Since Fsignal will close off all calls to x_catch_errors,
1489 we will get the wrong results if some are not closed now. */ 1495 we will get the wrong results if some are not closed now. */
1496 #if 0 /* Fsignal doesn't do that anymore. --lorentey */
1490 #if HAVE_X_WINDOWS 1497 #if HAVE_X_WINDOWS
1491 if (x_catching_errors ()) 1498 if (x_catching_errors ())
1492 abort (); 1499 abort ();
1500 #endif
1493 #endif 1501 #endif
1494 1502
1495 c.tag = Qnil; 1503 c.tag = Qnil;
1496 c.val = Qnil; 1504 c.val = Qnil;
1497 c.backlist = backtrace_list; 1505 c.backlist = backtrace_list;
1536 struct catchtag c; 1544 struct catchtag c;
1537 struct handler h; 1545 struct handler h;
1538 1546
1539 /* Since Fsignal will close off all calls to x_catch_errors, 1547 /* Since Fsignal will close off all calls to x_catch_errors,
1540 we will get the wrong results if some are not closed now. */ 1548 we will get the wrong results if some are not closed now. */
1549 #if 0 /* Fsignal doesn't do that anymore. --lorentey */
1541 #if HAVE_X_WINDOWS 1550 #if HAVE_X_WINDOWS
1542 if (x_catching_errors ()) 1551 if (x_catching_errors ())
1543 abort (); 1552 abort ();
1553 #endif
1544 #endif 1554 #endif
1545 1555
1546 c.tag = Qnil; 1556 c.tag = Qnil;
1547 c.val = Qnil; 1557 c.val = Qnil;
1548 c.backlist = backtrace_list; 1558 c.backlist = backtrace_list;