aboutsummaryrefslogtreecommitdiffstats
path: root/src/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'src/ChangeLog')
-rw-r--r--src/ChangeLog308
1 files changed, 307 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index b95488c1e70..60e7e376729 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,309 @@
12013-07-13 Paul Eggert <eggert@cs.ucla.edu>
2
3 Don't lose top specpdl entry when memory is exhausted.
4 * eval.c (grow_specpdl): Increment specpdl top by 1 and check for
5 specpdl overflow here, to simplify callers; all callers changed.
6 Always reserve an unused entry at the stack top; this avoids
7 losing the top entry's information when memory is exhausted.
8
92013-07-12 Paul Eggert <eggert@cs.ucla.edu>
10
11 Clean up errno reporting and fix some errno-reporting bugs.
12 * callproc.c (Fcall_process):
13 * fileio.c (Fcopy_file, Finsert_file_contents, Fwrite_region):
14 * process.c (create_process, Fmake_network_process):
15 * unexaix.c (report_error):
16 * unexcoff.c (report_error):
17 Be more careful about reporting the errno of failed operations.
18 The code previously reported the wrong errno sometimes.
19 Also, prefer report_file_errno to setting errno + report_file_error.
20 (Fcall_process): Look at openp return value rather than at path,
21 as that's a bit faster and clearer when there's a numeric predicate.
22 * fileio.c (report_file_errno): New function, with most of the
23 old contents of report_file_error.
24 (report_file_error): Use it.
25 (Ffile_exists_p, Ffile_accessible_directory_p):
26 Set errno to 0 when it is junk.
27 * fileio.c (Faccess_file):
28 * image.c (x_create_bitmap_from_file):
29 Use faccessat rather than opening the file, to avoid the hassle of
30 having a file descriptor open.
31 * lisp.h (report_file_errno): New decl.
32 * lread.c (Flocate_file_internal): File descriptor 0 is valid, too.
33
34 Minor EBADF fixes.
35 * process.c (create_process, wait_reading_process_output) [AIX]:
36 Remove obsolete SIGHUP-related code, as Emacs no longer disables
37 SIGHUP, so EBADF is no longer acceptable here (it wouldn't work in
38 a multithreaded environment anyway).
39 * sysdep.c (emacs_close): It's not dangerous to invoke emacs_close (-1).
40
412013-07-12 Andreas Schwab <schwab@linux-m68k.org>
42
43 * image.c (x_find_image_file): Don't close a remote file handle.
44
452013-07-12 Paul Eggert <eggert@cs.ucla.edu>
46
47 Fix races with threads and file descriptors.
48 * callproc.c (Fcall_process_region):
49 * dired.c (open_directory):
50 * emacs.c (main, Fdaemon_initialized):
51 * image.c (x_find_image_file):
52 * inotify.c (Finotify_rm_watch):
53 * lread.c (Flocate_file_internal):
54 * process.c (Fnetwork_interface_list, Fnetwork_interface_info):
55 * term.c (term_mouse_moveto, init_tty):
56 * termcap.c (tgetent):
57 * unexaix.c, unexcoff.c (report_error, report_error_1, adjust_lnnoptrs)
58 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c (unexec):
59 * unexhp9k800.c, unexmacosx.c (unexec):
60 * callproc.c (Fcall_process_region):
61 Use emacs_close, not close.
62 * sysdep.c (POSIX_CLOSE_RESTART, posix_close) [!POSIX_CLOSE_RESTART]:
63 New macro and function, which emulates the POSIX_CLOSE_RESTART macro
64 and posix_close function on current platforms (which all lack them).
65 (emacs_close): Use it. This should fix the races on GNU/Linux and
66 on AIX and on future platforms that support POSIX_CLOSE_RESTART,
67 and it should avoid closing random victim file descriptors on
68 other platforms.
69
702013-07-11 Paul Eggert <eggert@cs.ucla.edu>
71
72 * inotify.c (uninitialized): Remove. All uses replaced by -1.
73 (Finotify_add_watch): Simplify, since -1 means uninitialized now.
74 Touch up doc a bit.
75
76 * eval.c (backtrace_function, backtrace_args): Now EXTERNALLY_VISIBLE.
77 This is for .gdbinit xbacktrace.
78
79 * sysdep.c, term.c, termcap.c, terminal.c: Integer-related minor fixes.
80 * sysdep.c (emacs_get_tty): Return void, since nobody uses the value.
81 (emacs_set_tty): Now static.
82 * sysdep.c (emacs_set_tty, tabs_safe_p, emacs_close):
83 * term.c (tty_capable_p, tty_default_color_capabilities)
84 (get_tty_terminal, term_mouse_movement)
85 (handle_one_term_event, init_tty, maybe_fatal):
86 * termcap.c (tgetst1, struct termcap_buffer, valid_filename_p)
87 (tgetent, scan_file, name_match, compare_contin):
88 * terminal.c (get_terminal):
89 Use bool for boolean.
90 * sysdep.c (init_system_name): Don't overflow stack on huge hostname.
91 Prefer char to unsigned char if either will do.
92 * term.c (OUTPUT, turn_on_face): Omit unnecessary casts to int.
93 (tty_write_glyphs): Prefer int to unsigned.
94 (produce_glyphless_glyph): Remove 2nd (unused) int arg.
95 All callers changed.
96 * termcap.c (tprint, main) [TEST]: Remove non-working test.
97
982013-07-10 Paul Eggert <eggert@cs.ucla.edu>
99
100 Port to C89.
101 * bytecode.c (BYTE_CODE_THREADED): Do not define if __STRICT_ANSI__.
102 (B__dummy__): New dummy symbol, to pacify C89.
103 * dbusbind.c (XD_DEBUG_MESSAGE): Omit debugging on C89 hosts, since
104 they can't grok varargs macros.
105 * dispnew.c (add_window_display_history)
106 (add_frame_display_history):
107 * print.c (print_object):
108 * xdisp.c (debug_method_add):
109 Use %p printf format only for void pointers.
110 * emacs.c (usage_message): New constant, replacing ...
111 (USAGE1, USAGE2, USAGE3): Remove; they were too long for C89.
112 (main): Adjust to usage reorg.
113 * fns.c (syms_of_fns):
114 * profiler.c (syms_of_profiler):
115 Don't use non-constant struct initializers.
116 * gnutls.h (gnutls_initstage_t):
117 * lisp.h (enum Lisp_Fwd_Type):
118 * lread.c (lisp_file_lexically_bound_p):
119 * xsettings.c (anonymous enum):
120 Remove trailing comma.
121 * xsettings.c (apply_xft_settings): Use %f, not %lf; %lf is a C99ism.
122 * lisp.h (ENUM_BF): Use unsigned if pedantic.
123 (DEFUN_FUNCTION_INIT): New macro, that falls back on a cast if pre-C99.
124 (DEFUN): Use it.
125 * regex.c (const_re_char): New type, to pacify strict C89.
126 All uses of 'const re_char' replaced to use it.
127 * regex.h (_Restrict_): Rename from __restrict, to avoid clash
128 with glibc when strict C89. This change is imported from gnulib.
129 All uses changed.
130 (_Restrict_arr_): Rename from __restrict_arr, similarly.
131 * sysdep.c (time_from_jiffies) [!HAVE_LONG_LONG_INT]:
132 Omit GNU_LINUX implementation, since it requires long long.
133 * xterm.c (x_draw_underwave):
134 Do not assume the traditional order of struct's members.
135 (x_term_init): Rewrite to avoid the need for non-constant structure
136 initializers.
137
138 Syntax cleanup, mostly replacing macros with functions.
139` This removes the need for the syntax_temp hack.
140 * search.c: Include syntax.h after buffer.h, since syntax.h uses BVAR.
141 * syntax.c (SYNTAX_INLINE): New macro.
142 (SYNTAX_FLAGS_COMSTART_FIRST, SYNTAX_FLAGS_COMSTART_SECOND)
143 (SYNTAX_FLAGS_COMEND_FIRST, SYNTAX_FLAGS_COMEND_SECOND)
144 (SYNTAX_FLAGS_PREFIX, SYNTAX_FLAGS_COMMENT_STYLEB)
145 (SYNTAX_FLAGS_COMMENT_STYLEC, SYNTAX_FLAGS_COMMENT_STYLEC2)
146 (SYNTAX_FLAGS_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_STYLE)
147 (SYNTAX_COMEND_FIRST): Now functions, not macros.
148 (ST_COMMENT_STYLE, ST_STRING_STYLE, INTERVALS_AT_ONCE):
149 Now constants, not macros.
150 (syntax_temp) [!__GNUC__]: Remove.
151 (SYNTAX_PREFIX): Remove; all uses replaced by syntax_prefix_flag_p.
152 (syntax_prefix_flag_p): Move implementation of SYNTAX_PREFIX here.
153 (SET_RAW_SYNTAX_ENTRY, SET_RAW_SYNTAX_ENTRY_RANGE, SYNTAX_MATCH)
154 (SETUP_SYNTAX_TABLE, SETUP_SYNTAX_TABLE_FOR_OBJECT):
155 Move here from syntax.h; now functions, not macros. Except for the
156 last function, these are static since only syntax.c uses them.
157 (syntax_multibyte): Rename from SYNTAX_WITH_MULTIBYTE_CHECK.
158 All uses changed. Now a function, not a macro; use this fact
159 to simplify the code.
160 (scan_lists, scan_sexps_forward): Remove workarounds for ancient
161 compiler bugs; no longer relevant.
162 * syntax.h: Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
163 (SYNTAX_INLINE): New macro.
164 (struct gl_state_s, gl_state): Move earlier, so that it's in scope
165 for the new functions. Use bool for boolean member.
166 (SYNTAX_ENTRY, SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH)
167 (SYNTAX_TABLE_BYTE_TO_CHAR, UPDATE_SYNTAX_TABLE_FORWARD)
168 (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE)
169 (SETUP_BUFFER_SYNTAX_TABLE):
170 Now extern inline functions, not macros.
171 (CURRENT_SYNTAX_TABLE, SYNTAX_ENTRY_INT):
172 Remove; all uses replaced by implementation.
173 (syntax_temp) [!__GNUC__]: Remove decl.
174 (SETUP_SYNTAX_TABLE_FOR_OBJECT): New decl.
175
1762013-07-10 Jan Djärv <jan.h.d@swipnet.se>
177
178 * emacs.c (main): Fix syntax error.
179
1802013-07-10 Paul Eggert <eggert@cs.ucla.edu>
181
182 Timestamp fixes for undo (Bug#14824).
183 * atimer.c (schedule_atimer):
184 * fileio.c (Ffile_newer_than_file_p):
185 Minor cleanup: use EMACS_TIME_LT so that we can remove EMACS_TIME_GT.
186 * buffer.c (buffer-undo-list): Document (t . 0) and (t . -1).
187 * fileio.c (Fclear_visited_file_modtime): Move to lisp/files.el.
188 (syms_of_fileio): Remove Sclear_visited_file_name.
189 (Fvisited_file_modtime): Return -1, not (-1 ...), when the visited
190 file doesn't exist; this avoids an ambiguity with negative timestamps.
191 (Fset_visited_file_modtime): Accept -1 and 0 as time-list arg.
192 * systime.h (make_emacs_time, invalid_emacs_time):
193 Don't assume struct timespec layout; POSIX doesn't guarantee it.
194 (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE): Remove.
195 * undo.c (record_first_change): Push (visited-file-modtime) onto
196 undo list rather than reimplementing it by hand, incorrectly.
197
1982013-07-09 Ken Brown <kbrown@cornell.edu>
199
200 * sheap.c (STATIC_HEAP_SIZE) [__x86_64__]: Increase to 18MB.
201
2022013-07-09 Juanma Barranquero <lekktu@gmail.com>
203
204 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/sysdep.$(O)): Update.
205
2062013-07-09 Paul Eggert <eggert@cs.ucla.edu>
207
208 Handle errno and exit status a bit more carefully.
209 * callproc.c (child_setup) [!DOS_NT]: Don't try to stuff an error
210 number into an exit status. Instead, use EXIT_CANCELED.
211 (child_setup) [!MSDOS]: Avoid possible deadlock with vfork.
212 * callproc.c (relocate_fd):
213 * emacs.c (close_output_streams, main):
214 * process.c (create_process):
215 * sysdep.c (sys_subshell) [!DOS_NT || !WINDOWSNT]:
216 Use emacs_perror for simplicity.
217 * callproc.c (relocate_fd, main):
218 * sysdep.c (sys_subshell):
219 Exit with EXIT_CANCELED etc., not 1, when exec setup fails.
220 (shut_down_emacs): Use emacs_write, not write.
221 * emacs.c, sysdep.c: Don't include <ignore-value.h>.
222 * fileio.c (Fcopy_file, e_write):
223 * nsterm.m (ns_select):
224 * process.c (send_process):
225 * sound.c (vox_write):
226 Use emacs_write_sig, not emacs_write.
227 * lisp.h (emacs_write_sig, emacs_perror): New decls.
228 * process.h (EXIT_CANCELED), EXIT_CANNOT_INVOKE, EXIT_ENOENT):
229 New constants.
230 * sysdep.c (emacs_backtrace): Use emacs_write, not ignore_value
231 of write.
232 (emacs_full_write): New function.
233 (emacs_write): Rewrite to use it.
234 (emacswrite_sig, emacs_perror): New functions.
235 * xrdb.c (fatal): Don't invoke perror, since errno might be garbage.
236
2372013-07-08 Magnus Henoch <magnus.henoch@gmail.com> (tiny change).
238
239 * image.c (imagemagick_load_image): Do not use MagickExportImagePixels
240 on NS even if it is present. Pixmap on NS is a void*.
241
2422013-07-07 Paul Eggert <eggert@cs.ucla.edu>
243
244 Port to Ubuntu 10 (Bug#14803).
245 Problem reported by T.V. Raman.
246 * process.c (close_on_exec, accept4, process_socket):
247 Define these if !HAVE_ACCEPT4, not if !SOCK_CLOEXEC.
248
2492013-07-07 Eli Zaretskii <eliz@gnu.org>
250
251 * w32.c (sys_dup): Declare prototype.
252
253 * filelock.c:
254 * emacs.c:
255 * callproc.c [WINDOWSNT]: Include sys/socket.h.
256
2572013-07-07 Paul Eggert <eggert@cs.ucla.edu>
258
259 Make file descriptors close-on-exec when possible (Bug#14803).
260 This simplifies Emacs a bit, since it no longer needs to worry
261 about closing file descriptors by hand in some cases.
262 It also fixes some unlikely races. Not all such races, as
263 libraries often open files internally without setting
264 close-on-exec, but it's an improvement.
265 * alloc.c (valid_pointer_p) [!WINDOWSNT]:
266 * callproc.c (Fcall_process) [!MSDOS]:
267 * emacs.c (main) [!DOS_NT]:
268 * nsterm.m (ns_term_init):
269 * process.c (create_process):
270 Use 'pipe2' with O_CLOEXEC instead of 'pipe'.
271 * emacs.c (Fcall_process_region) [HAVE_MKOSTEMP]:
272 * filelock.c (create_lock_file) [HAVE_MKOSTEMP]:
273 Prefer mkostemp with O_CLOEXEC to mkstemp.
274 * callproc.c (relocate_fd) [!WINDOWSNT]:
275 * emacs.c (main): Use F_DUPFD_CLOEXEC, not plain F_DUPFD.
276 No need to use fcntl (..., F_SETFD, FD_CLOEXEC), since we're
277 now using pipe2.
278 * filelock.c (create_lock_file) [! HAVE_MKOSTEMP]:
279 Make the resulting file descriptor close-on-exec.
280 * lisp.h, lread.c, process.c (close_load_descs, close_process_descs):
281 * lread.c (load_descriptor_list, load_descriptor_unwind):
282 Remove; no longer needed. All uses removed.
283 * process.c (SOCK_CLOEXEC): Define to 0 if not supplied by system.
284 (close_on_exec, accept4, process_socket) [!SOCK_CLOEXEC]:
285 New functions.
286 (socket) [!SOCK_CLOEXEC]: Supply a substitute.
287 (Fmake_network_process, Fnetwork_interface_list):
288 (Fnetwork_interface_info, server_accept_connection):
289 Make newly-created socket close-on-exec.
290 * sysdep.c (emacs_open, emacs_fopen):
291 Make new-created descriptor close-on-exec.
292 * w32.c (fcntl): Support F_DUPFD_CLOEXEC well enough for Emacs.
293 * w32.c, w32.h (pipe2): Rename from 'pipe', with new flags arg.
294
2952013-07-07 Jan Djärv <jan.h.d@swipnet.se>
296
297 * nsterm.m (sendEvent:): Propagate keyboard events to modal windows
298 for NS_IMPL_GNUSTEP.
299
3002013-07-07 Paul Eggert <eggert@cs.ucla.edu>
301
302 Fix openp errno handling.
303 * callproc.c (Fcall_process): Preserve openp errno around close.
304 * lread.c (openp): Set errno when returning -1, as some callers
305 expect this.
306
12013-07-06 Jan Djärv <jan.h.d@swipnet.se> 3072013-07-06 Jan Djärv <jan.h.d@swipnet.se>
2 308
3 * nsterm.m (sendEvent:): Handle NSAPP_DATA2_RUNFILEDIALOG. 309 * nsterm.m (sendEvent:): Handle NSAPP_DATA2_RUNFILEDIALOG.
@@ -655,7 +961,7 @@
655 (VALMASK): Also a constant, for benefit of old GDB. 961 (VALMASK): Also a constant, for benefit of old GDB.
656 (LISP_INT_TAG_P): Remove; no longer needed as the only caller 962 (LISP_INT_TAG_P): Remove; no longer needed as the only caller
657 is INTEGERP, which can fold it in. 963 is INTEGERP, which can fold it in.
658 (XLI, XIL, XHASH, XTYPE,XINT, XFASTINT, XUINT) 964 (XLI, XIL, XHASH, XTYPE, XINT, XFASTINT, XUINT)
659 (make_number, XPNTR, XUNTAG, EQ, XCONS, XVECTOR, XSTRING, XSYMBOL) 965 (make_number, XPNTR, XUNTAG, EQ, XCONS, XVECTOR, XSTRING, XSYMBOL)
660 (XFLOAT, XPROCESS, XWINDOW, XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE) 966 (XFLOAT, XPROCESS, XWINDOW, XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE)
661 (XSUB_CHAR_TABLE, XBOOL_VECTOR, make_lisp_ptr, CHECK_TYPE) 967 (XSUB_CHAR_TABLE, XBOOL_VECTOR, make_lisp_ptr, CHECK_TYPE)