diff options
| author | Paul Eggert | 2011-08-18 01:41:19 -0700 |
|---|---|---|
| committer | Paul Eggert | 2011-08-18 01:41:19 -0700 |
| commit | 2fab8395070ff77b836cb8ca9b84c261c4387a9a (patch) | |
| tree | 0d3eedd5fd59c2cad0680c6a27789554e4527cd0 /src | |
| parent | d31850da41f8dba08684acd2e8addd7127089404 (diff) | |
| parent | 4dcb0d7a58bff52c1155fd93c03dcab4567038f2 (diff) | |
| download | emacs-2fab8395070ff77b836cb8ca9b84c261c4387a9a.tar.gz emacs-2fab8395070ff77b836cb8ca9b84c261c4387a9a.zip | |
Merge from trunk.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 19 | ||||
| -rw-r--r-- | src/eval.c | 28 | ||||
| -rw-r--r-- | src/gmalloc.c | 6 | ||||
| -rw-r--r-- | src/lread.c | 28 |
4 files changed, 48 insertions, 33 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 2677f03944f..fe8df6ffe41 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | 2011-08-16 Paul Eggert <eggert@cs.ucla.edu> | 1 | 2011-08-18 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 2 | ||
| 3 | Integer and memory overflow issues (Bug#9196). | 3 | Integer and memory overflow issues (Bug#9196). |
| 4 | 4 | ||
| @@ -421,6 +421,21 @@ | |||
| 421 | (gs_load): Use printmax_t to print the widest integers possible. | 421 | (gs_load): Use printmax_t to print the widest integers possible. |
| 422 | Check for integer overflow when computing image height and width. | 422 | Check for integer overflow when computing image height and width. |
| 423 | 423 | ||
| 424 | 2011-08-17 Chong Yidong <cyd@stupidchicken.com> | ||
| 425 | |||
| 426 | * eval.c (internal_condition_case, internal_condition_case_1) | ||
| 427 | (internal_condition_case_2, internal_condition_case_n): Remove | ||
| 428 | unnecessary aborts (Bug#9081). | ||
| 429 | |||
| 430 | 2011-08-17 Eli Zaretskii <eliz@gnu.org> | ||
| 431 | |||
| 432 | * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file | ||
| 433 | has no `load' handler, try opening the file locally. (Bug#9311) | ||
| 434 | |||
| 435 | 2011-08-16 Ken Brown <kbrown@cornell.edu> | ||
| 436 | |||
| 437 | * gmalloc.c: Expand comment. | ||
| 438 | |||
| 424 | 2011-08-16 Eli Zaretskii <eliz@gnu.org> | 439 | 2011-08-16 Eli Zaretskii <eliz@gnu.org> |
| 425 | 440 | ||
| 426 | * xdisp.c (set_cursor_from_row): Don't accept a previous candidate | 441 | * xdisp.c (set_cursor_from_row): Don't accept a previous candidate |
| @@ -475,7 +490,7 @@ | |||
| 475 | 2011-08-14 Kenichi Handa <handa@m17n.org> | 490 | 2011-08-14 Kenichi Handa <handa@m17n.org> |
| 476 | 491 | ||
| 477 | * process.c (create_process): Call setup_process_coding_systems | 492 | * process.c (create_process): Call setup_process_coding_systems |
| 478 | after the pid of the process is set to -1. | 493 | after the pid of the process is set to -1 (Bug#8162). |
| 479 | 494 | ||
| 480 | 2011-08-14 Eli Zaretskii <eliz@gnu.org> | 495 | 2011-08-14 Eli Zaretskii <eliz@gnu.org> |
| 481 | 496 | ||
diff --git a/src/eval.c b/src/eval.c index 94039b31e17..8149683a104 100644 --- a/src/eval.c +++ b/src/eval.c | |||
| @@ -1462,13 +1462,6 @@ internal_condition_case (Lisp_Object (*bfun) (void), Lisp_Object handlers, | |||
| 1462 | struct catchtag c; | 1462 | struct catchtag c; |
| 1463 | struct handler h; | 1463 | struct handler h; |
| 1464 | 1464 | ||
| 1465 | /* Since Fsignal will close off all calls to x_catch_errors, | ||
| 1466 | we will get the wrong results if some are not closed now. */ | ||
| 1467 | #if HAVE_X_WINDOWS | ||
| 1468 | if (x_catching_errors ()) | ||
| 1469 | abort (); | ||
| 1470 | #endif | ||
| 1471 | |||
| 1472 | c.tag = Qnil; | 1465 | c.tag = Qnil; |
| 1473 | c.val = Qnil; | 1466 | c.val = Qnil; |
| 1474 | c.backlist = backtrace_list; | 1467 | c.backlist = backtrace_list; |
| @@ -1507,13 +1500,6 @@ internal_condition_case_1 (Lisp_Object (*bfun) (Lisp_Object), Lisp_Object arg, | |||
| 1507 | struct catchtag c; | 1500 | struct catchtag c; |
| 1508 | struct handler h; | 1501 | struct handler h; |
| 1509 | 1502 | ||
| 1510 | /* Since Fsignal will close off all calls to x_catch_errors, | ||
| 1511 | we will get the wrong results if some are not closed now. */ | ||
| 1512 | #if HAVE_X_WINDOWS | ||
| 1513 | if (x_catching_errors ()) | ||
| 1514 | abort (); | ||
| 1515 | #endif | ||
| 1516 | |||
| 1517 | c.tag = Qnil; | 1503 | c.tag = Qnil; |
| 1518 | c.val = Qnil; | 1504 | c.val = Qnil; |
| 1519 | c.backlist = backtrace_list; | 1505 | c.backlist = backtrace_list; |
| @@ -1556,13 +1542,6 @@ internal_condition_case_2 (Lisp_Object (*bfun) (Lisp_Object, Lisp_Object), | |||
| 1556 | struct catchtag c; | 1542 | struct catchtag c; |
| 1557 | struct handler h; | 1543 | struct handler h; |
| 1558 | 1544 | ||
| 1559 | /* Since Fsignal will close off all calls to x_catch_errors, | ||
| 1560 | we will get the wrong results if some are not closed now. */ | ||
| 1561 | #if HAVE_X_WINDOWS | ||
| 1562 | if (x_catching_errors ()) | ||
| 1563 | abort (); | ||
| 1564 | #endif | ||
| 1565 | |||
| 1566 | c.tag = Qnil; | 1545 | c.tag = Qnil; |
| 1567 | c.val = Qnil; | 1546 | c.val = Qnil; |
| 1568 | c.backlist = backtrace_list; | 1547 | c.backlist = backtrace_list; |
| @@ -1605,13 +1584,6 @@ internal_condition_case_n (Lisp_Object (*bfun) (ptrdiff_t, Lisp_Object *), | |||
| 1605 | struct catchtag c; | 1584 | struct catchtag c; |
| 1606 | struct handler h; | 1585 | struct handler h; |
| 1607 | 1586 | ||
| 1608 | /* Since Fsignal will close off all calls to x_catch_errors, | ||
| 1609 | we will get the wrong results if some are not closed now. */ | ||
| 1610 | #if HAVE_X_WINDOWS | ||
| 1611 | if (x_catching_errors ()) | ||
| 1612 | abort (); | ||
| 1613 | #endif | ||
| 1614 | |||
| 1615 | c.tag = Qnil; | 1587 | c.tag = Qnil; |
| 1616 | c.val = Qnil; | 1588 | c.val = Qnil; |
| 1617 | c.backlist = backtrace_list; | 1589 | c.backlist = backtrace_list; |
diff --git a/src/gmalloc.c b/src/gmalloc.c index 61046ad9d1b..d49259b8ed7 100644 --- a/src/gmalloc.c +++ b/src/gmalloc.c | |||
| @@ -356,7 +356,11 @@ Fifth Floor, Boston, MA 02110-1301, USA. | |||
| 356 | emacs uses the Cygwin heap (managed with sbrk). When emacs starts | 356 | emacs uses the Cygwin heap (managed with sbrk). When emacs starts |
| 357 | on Cygwin, it reinitializes malloc, and we save the old info for | 357 | on Cygwin, it reinitializes malloc, and we save the old info for |
| 358 | use by free and realloc if they're called with a pointer into the | 358 | use by free and realloc if they're called with a pointer into the |
| 359 | static heap. */ | 359 | static heap. |
| 360 | |||
| 361 | Currently (2011-08-16) the Cygwin build doesn't use ralloc.c; if | ||
| 362 | this is changed in the future, we'll have to similarly deal with | ||
| 363 | reinitializing ralloc. */ | ||
| 360 | #ifdef CYGWIN | 364 | #ifdef CYGWIN |
| 361 | extern __ptr_t bss_sbrk PP ((ptrdiff_t __size)); | 365 | extern __ptr_t bss_sbrk PP ((ptrdiff_t __size)); |
| 362 | extern int bss_sbrk_did_unexec; | 366 | extern int bss_sbrk_did_unexec; |
diff --git a/src/lread.c b/src/lread.c index f2a52780a0c..d24da729df6 100644 --- a/src/lread.c +++ b/src/lread.c | |||
| @@ -1124,6 +1124,22 @@ Return t if the file exists and loads successfully. */) | |||
| 1124 | handler = Ffind_file_name_handler (found, Qload); | 1124 | handler = Ffind_file_name_handler (found, Qload); |
| 1125 | if (! NILP (handler)) | 1125 | if (! NILP (handler)) |
| 1126 | return call5 (handler, Qload, found, noerror, nomessage, Qt); | 1126 | return call5 (handler, Qload, found, noerror, nomessage, Qt); |
| 1127 | #ifdef DOS_NT | ||
| 1128 | /* Tramp has to deal with semi-broken packages that prepend | ||
| 1129 | drive letters to remote files. For that reason, Tramp | ||
| 1130 | catches file operations that test for file existence, which | ||
| 1131 | makes openp think X:/foo.elc files are remote. However, | ||
| 1132 | Tramp does not catch `load' operations for such files, so we | ||
| 1133 | end up with a nil as the `load' handler above. If we would | ||
| 1134 | continue with fd = -2, we will behave wrongly, and in | ||
| 1135 | particular try reading a .elc file in the "rt" mode instead | ||
| 1136 | of "rb". See bug #9311 for the results. To work around | ||
| 1137 | this, we try to open the file locally, and go with that if it | ||
| 1138 | succeeds. */ | ||
| 1139 | fd = emacs_open (SSDATA (ENCODE_FILE (found)), O_RDONLY, 0); | ||
| 1140 | if (fd == -1) | ||
| 1141 | fd = -2; | ||
| 1142 | #endif | ||
| 1127 | } | 1143 | } |
| 1128 | 1144 | ||
| 1129 | /* Check if we're stuck in a recursive load cycle. | 1145 | /* Check if we're stuck in a recursive load cycle. |
| @@ -1247,9 +1263,17 @@ Return t if the file exists and loads successfully. */) | |||
| 1247 | GCPRO3 (file, found, hist_file_name); | 1263 | GCPRO3 (file, found, hist_file_name); |
| 1248 | 1264 | ||
| 1249 | #ifdef WINDOWSNT | 1265 | #ifdef WINDOWSNT |
| 1250 | emacs_close (fd); | ||
| 1251 | efound = ENCODE_FILE (found); | 1266 | efound = ENCODE_FILE (found); |
| 1252 | stream = fopen (SSDATA (efound), fmode); | 1267 | /* If we somehow got here with fd == -2, meaning the file is deemed |
| 1268 | to be remote, don't even try to reopen the file locally; just | ||
| 1269 | force a failure instead. */ | ||
| 1270 | if (fd >= 0) | ||
| 1271 | { | ||
| 1272 | emacs_close (fd); | ||
| 1273 | stream = fopen (SSDATA (efound), fmode); | ||
| 1274 | } | ||
| 1275 | else | ||
| 1276 | stream = NULL; | ||
| 1253 | #else /* not WINDOWSNT */ | 1277 | #else /* not WINDOWSNT */ |
| 1254 | stream = fdopen (fd, fmode); | 1278 | stream = fdopen (fd, fmode); |
| 1255 | #endif /* not WINDOWSNT */ | 1279 | #endif /* not WINDOWSNT */ |