aboutsummaryrefslogtreecommitdiffstats
path: root/src/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'src/ChangeLog')
-rw-r--r--src/ChangeLog104
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 @@
12013-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
152013-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
942013-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
12013-08-11 Lars Magne Ingebrigtsen <larsi@gnus.org> 1052013-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