diff options
Diffstat (limited to 'src/ChangeLog')
| -rw-r--r-- | src/ChangeLog | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 1780bf4e797..679b82ba63c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,107 @@ | |||
| 1 | 2013-08-12 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 2 | |||
| 3 | Avoid looping over all frame windows to freeze and unfreeze. | ||
| 4 | * window.h (struct window): Drop frozen_window_start_p. | ||
| 5 | (freeze_window_starts): Drop prototype. | ||
| 6 | * frame.h (struct frame): New frozen_window_starts flag. | ||
| 7 | (FRAME_WINDOWS_FROZEN): New macro. | ||
| 8 | * window.c (freeze_window_start, freeze_window_starts): | ||
| 9 | Remove. | ||
| 10 | (select_window, replace_window): Adjust users. | ||
| 11 | * xdisp.c (resize_mini_window): Use FRAME_WINDOWS_FROZEN. | ||
| 12 | (window_frozen_p): New function. | ||
| 13 | (redisplay_window): Use it. | ||
| 14 | |||
| 15 | 2013-08-12 Paul Eggert <eggert@cs.ucla.edu> | ||
| 16 | |||
| 17 | Fix some fd issues when running subprocesses (Bug#15035). | ||
| 18 | Fix bugs that can leak files or file descriptors on errors. | ||
| 19 | Don't unlink open temp files, as that's hard for users to diagnose | ||
| 20 | when things go awry (e.g., temp disk exhausted). | ||
| 21 | Don't bother to lock temp files. Check for invalid recursion. | ||
| 22 | * callproc.c (synch_process_fd): Remove. All uses removed. | ||
| 23 | (synch_process_tempfile): New var or macro. | ||
| 24 | (CALLPROC_STDOUT, CALLPROC_STDERR, CALLPROC_PIPEREAD, CALLPROC_FDS): | ||
| 25 | New constants. | ||
| 26 | (record_kill_process): New arg, the temp name. All callers changed. | ||
| 27 | (delete_temp_file): Now just a simple wrapper around unlink. | ||
| 28 | (call_process_kill): New arg, the call_process_fd array. | ||
| 29 | Close them all. Clear synch_process_pid. Remove the temp file, | ||
| 30 | or arrange for it to be removed. | ||
| 31 | (call_process_cleanup) [MSDOS]: Arg no longer contains file name; | ||
| 32 | that's been moved to synch_process_tempfile. Caller changed. | ||
| 33 | Do not remove the tempfile; that's now call_process_kill's | ||
| 34 | responsibility. | ||
| 35 | (call_process_cleanup) [!MSDOS]: Do not record unwind-protect for | ||
| 36 | call_process_kill; the caller now does that. | ||
| 37 | (call_process_cleanup): Do not close the process fd; that's now | ||
| 38 | call_process_kill's responsibility. | ||
| 39 | (Fcall_process): Implement via new function call_process, which | ||
| 40 | has most of the old body of Fcall_process, but with a different API. | ||
| 41 | (call_process): New function that does not open or close filefd if | ||
| 42 | it is nonnegative. Record which fds need to be closed, and let | ||
| 43 | call_process_kill close (and remove the tempfile, on MSDOS) on error. | ||
| 44 | Signal an error if invoked recursively (could be done via a hook). | ||
| 45 | Simplify creation of the tempfile in the MSDOS case. | ||
| 46 | Don't create the output file until after checking for the executable. | ||
| 47 | Report any failure to open /dev/null. | ||
| 48 | Don't open /dev/null for writing twice; once is enough. | ||
| 49 | Don't create pipe if all output is being discarded or sent to file. | ||
| 50 | Don't worry about setting up the coding system or reading from the | ||
| 51 | pipe if all output is being discarded. | ||
| 52 | Hoist fd_error local into top level, to lessen block nesting. | ||
| 53 | Don't record deleted pid here; now done by Fcall_process_region. | ||
| 54 | (Fcall_process) [MSDOS]: Report mktemp failure immediately, | ||
| 55 | and note its success in synch_process_tempfile. | ||
| 56 | Do not leak resources when child_setup fails. | ||
| 57 | (Fcall_process) [!MSDOS && !WINDOWSNT]: Remove duplicate assignment | ||
| 58 | to child_errno. Remove unnecessary close of fd0; it's close-on-exec. | ||
| 59 | (create_temp_file): Now returns open fd, with an additional | ||
| 60 | Lisp_Object * argument to return the name. All callers changed. | ||
| 61 | Do not close the file; rewind it instead, and leave it open for | ||
| 62 | the caller. Do not lock the temp file. Unwind-protect the file | ||
| 63 | and the file-descriptor. | ||
| 64 | (Fcall_process_region): If the input is /dev/null, unwind-protect it. | ||
| 65 | If an asynchrounous process, record it here, not in call_process. | ||
| 66 | (syms_of_callproc) [MSDOS]: Initialize synch_process_tempfile. | ||
| 67 | * eval.c (set_unwind_protect): New function. | ||
| 68 | * fileio.c (write_region): New function, generalized from the | ||
| 69 | old Fwrite_region. Do not lock temp files. | ||
| 70 | (Fwrite_region): Use it. | ||
| 71 | * lisp.h (set_unwind_protect, write_region): New decls. | ||
| 72 | * process.c: Include <verify.h>. | ||
| 73 | (make_process): Mark fds as initially closed. | ||
| 74 | (deleted_pid_list): Now a list of pid-filename pairs. | ||
| 75 | All uses changed. | ||
| 76 | (close_process_fd): New function. | ||
| 77 | (SUBPROCESS_STDIN, WRITE_TO_SUBPROCESS, READ_FROM_SUBPROCESS) | ||
| 78 | (SUBPROCESS_STDOUT, READ_FROM_EXEC_MONITOR, EXEC_MONITOR_OUTPUT): | ||
| 79 | New constants. Verify that their number matches PROCESS_OPEN_FDS. | ||
| 80 | (create_process, create_pty, Fmake_serial_process) | ||
| 81 | (server_accept_connection): Record which fds need to be closed, | ||
| 82 | and let deactivate_process close them. | ||
| 83 | (Fmake_network_process): Do not discard the unwind-protect | ||
| 84 | until it's safe to do so. | ||
| 85 | (deactivate_process): Close the fds opened by create_process etc. | ||
| 86 | (Fprocess_send_eof): Adjust to new way of recording open fds. | ||
| 87 | Report an error if /dev/null can't be opened, instead of aborting. | ||
| 88 | * process.h (PROCESS_OPEN_FDS): New constant. | ||
| 89 | (struct Lisp_Process): New member open_fds. | ||
| 90 | (record_kill_process, record_deleted_pid): Adjust signatures. | ||
| 91 | (record_deleted_pid): Move decl here ... | ||
| 92 | * syswait.h (record_deleted_pid): ... from here. | ||
| 93 | |||
| 94 | 2013-08-11 Paul Eggert <eggert@cs.ucla.edu> | ||
| 95 | |||
| 96 | * decompress.c: Fix bugs with large buffers and weird inputs. | ||
| 97 | Tune a bit. Reindent as per usual Emacs style. | ||
| 98 | (BUFFER_SIZE): Remove. | ||
| 99 | (Fdecompress_gzipped_region): Do not mishandle input buffers with | ||
| 100 | more than UINT_MAX bytes. Decompress into the gap instead of into | ||
| 101 | an auto buffer, as this should avoid copying. Return nil if | ||
| 102 | 'inflate' returns Z_NEED_DICT, as we have no dictionary. Do not | ||
| 103 | set immediate_quit; we shouldn't trust zlib code that much. | ||
| 104 | |||
| 1 | 2013-08-11 Lars Magne Ingebrigtsen <larsi@gnus.org> | 105 | 2013-08-11 Lars Magne Ingebrigtsen <larsi@gnus.org> |
| 2 | 106 | ||
| 3 | * decompress.c (Fdecompress_gzipped_region): Respect all zlib | 107 | * decompress.c (Fdecompress_gzipped_region): Respect all zlib |