diff options
Diffstat (limited to 'src/ChangeLog')
| -rw-r--r-- | src/ChangeLog | 308 |
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 @@ | |||
| 1 | 2013-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 | |||
| 9 | 2013-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 | |||
| 41 | 2013-07-12 Andreas Schwab <schwab@linux-m68k.org> | ||
| 42 | |||
| 43 | * image.c (x_find_image_file): Don't close a remote file handle. | ||
| 44 | |||
| 45 | 2013-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 | |||
| 70 | 2013-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 | |||
| 98 | 2013-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 | |||
| 176 | 2013-07-10 Jan Djärv <jan.h.d@swipnet.se> | ||
| 177 | |||
| 178 | * emacs.c (main): Fix syntax error. | ||
| 179 | |||
| 180 | 2013-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 | |||
| 198 | 2013-07-09 Ken Brown <kbrown@cornell.edu> | ||
| 199 | |||
| 200 | * sheap.c (STATIC_HEAP_SIZE) [__x86_64__]: Increase to 18MB. | ||
| 201 | |||
| 202 | 2013-07-09 Juanma Barranquero <lekktu@gmail.com> | ||
| 203 | |||
| 204 | * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/sysdep.$(O)): Update. | ||
| 205 | |||
| 206 | 2013-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 | |||
| 237 | 2013-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 | |||
| 242 | 2013-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 | |||
| 249 | 2013-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 | |||
| 257 | 2013-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 | |||
| 295 | 2013-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 | |||
| 300 | 2013-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 | |||
| 1 | 2013-07-06 Jan Djärv <jan.h.d@swipnet.se> | 307 | 2013-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) |