Mercurial > emacs
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; |