X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/f90e3ebd13de8169ada56274f3abaa1ea8dc6d05..6e856b69ffea045be4efe029ecbb44df7fd4da21:/src/ChangeLog diff --git a/src/ChangeLog b/src/ChangeLog index fce45d3744..5131f666c6 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,403 @@ +2013-08-15 Lars Magne Ingebrigtsen + + * image.c (imagemagick_compute_animated_image): Implement animated + images (bug#14700). + +2013-08-15 Dmitry Antipov + + * lisp.h (FOR_EACH_ALIST_VALUE): New macro + to do `for' loops over alist values. + * buffer.h (FOR_EACH_BUFFER): + * process.c (FOR_EACH_PROCESS): Use it. + (handle_child_signal, status_notify, Fget_buffer_process) + (kill_buffer_processes): Use FOR_EACH_PROCESS. + +2013-08-15 Dmitry Antipov + + * term.c (get_named_tty, create_tty_output, tty_free_frame_resources) + (tty_free_frame_resources, delete_tty): Prefer eassert to emacs_abort. + * image.c (make_image_cache): For struct image_cache, prefer xmalloc + to xzalloc and so avoid redundant call to memset. + * xterm.c (x_term_init): Avoid unnecessary initializations of dpyinfo + members because it is allocated with xzalloc and so already zeroed. + +2013-08-14 Ken Brown + + * gmalloc.c (memalign) [CYGWIN]: Rename to emacs_memalign + (Bug#15094). + +2013-08-14 Dmitry Antipov + + Utility function and macro to copy Lisp string to C string. + * lisp.h (xlispstrdupa): New macro. + (xlispstrdup): New prototype. + * alloc.c (xlispstrdup): New function. + * callint.c (Fcall_interactively): + * fileio.c (Ffile_name_directory, Fexpand_file_name) + (Fsubstitute_in_file_name): + * frame.c (Fmake_terminal_frame): Use xlispstrdupa. + * image.c (x_create_bitmap_from_file): + * w32term.c (w32_term_init): + * xterm.c (x_term_init): Use xlispstrdup. + +2013-08-14 Lars Magne Ingebrigtsen + + * image.c (imagemagick_load_image): Make animated pictures work. + There's still some problems with background color settings, though + (bug#14700). + + * decompress.c (unwind_decompress): Always restore point. + +2013-08-14 Xue Fuqiao + + * marker.c (set_marker): Reformat documentation. + +2013-08-14 Paul Eggert + + * xdisp.c (cursor_type_changed): Now static. + + * image.c (imagemagick_filename_hint): New arg HINT_BUFFER. + Use changed. This avoids the need to call xmalloc and for the + caller to call xfree, and avoids memory leaks in some situations. + +2013-08-14 Dmitry Antipov + + * xdisp.c (adjust_window_ends): Move duplicated code to new function. + (try_window, try_window_reusing_current_matrix, try_window_id): Use it. + (redisplay_window): If window_end_valid is cleared due to non-zero + windows_or_buffers_changed, clear current_matrix_up_to_date_p and + so do not call to try_cursor_movement for that window. + +2013-08-14 Dmitry Antipov + + * window.h (struct window): Convert window_end_pos and + window_end_vpos from Lisp_Object to ptrdiff_t and int, respectively. + (wset_window_end_pos, wset_window_end_vpos): Remove. + * dispnew.c (adjust_glyph_matrix): + * window.c (Fwindow_end, replace_window, set_window_buffer) + (make_window): + * xdisp.c (check_window_end, move_it_to, redisplay_internal) + (set_vertical_scroll_bar, redisplay_window, try_window) + (try_window_reusing_current_matrix, find_first_unchanged_at_end_row) + (try_window_id, decode_mode_spec, mouse_face_from_buffer_pos) + (note_mouse_highlight): Adjust users. + (try_cursor_movement): Likewise. Convert old precondition to eassert. + Add comment. + +2013-08-14 Dmitry Antipov + + Fix --enable-gcc-warnings errors introduced in 2013-08-13 commit. + * image.c (imagemagick_filename_hint): Use `const char *' and + prefer SSDATA to SDATA to avoid warnings. + +2013-08-14 Dmitry Antipov + + Cleanup window fringes, margins and scroll bars adjustments. + * window.c (set_window_fringes, set_window_margins) + (set_window_scroll_bars, apply_window_adjustment): New functions. + (set_window_buffer, Fset_window_margins, Fset_window_fringes) + (Fset_window_scroll_bars): Use them. + +2013-08-14 Dmitry Antipov + + * window.h (struct window): Convert scroll_bar_width + from Lisp_Object to integer. Adjust comment. + (WINDOW_CONFIG_SCROLL_BAR_WIDTH, WINDOW_CONFIG_SCROLL_BAR_COLS): + Adjust users. + * window.c (wset_scroll_bar_width): Remove. + (make_window): Initialize scroll_bar_width. + (Fsplit_window_internal): Use direct assignment. + (Fset_window_configuration, save_window_save): + Convert Lisp_Object to integer and back where appropriate. + (Fset_window_scroll_bars): Adjust user. Return t if any scroll + bar was actually changed, and mention this in docstring. + +2013-08-13 Paul Eggert + + * decompress.c: Minor simplifications. + (Fzlib_decompress_region): Don't bother verifying + that avail_out <= UINT_MAX, as that was confusing. + Mention the restriction in a comment instead. + Prefer 'int' to 'ptrdiff_t' when 'int' is wide enough. + +2013-08-13 Jan Djärv + + * nsmenu.m (x_activate_menubar): Check for OSX >= 10.5 + (trackingNotification:): Call ns_check_menu_open only for OSX >= 10.5. + +2013-08-13 Lars Magne Ingebrigtsen + + * image.c (imagemagick_filename_hint): Check for errors in the + alist structure. + +2013-08-13 Eli Zaretskii + + * window.c (Fwindow_margins): Return nil when there's no marginal + area, as per the documented API. + + * w32term.c (x_scroll_bar_create): Use ALLOCATE_PSEUDOVECTOR, not + Fmake_vector, as scroll bar's struct members are not all Lisp + objects now. This avoids crashes in GC. + + * w32term.h (struct scroll_bar): Convert fringe_extended_p to a + bool, so its address could be taken. + +2013-08-13 Lars Magne Ingebrigtsen + + * image.c (imagemagick_filename_hint): New function to possibly + apply `image-content-type-suffixes'. + (imagemagick_load_image): Use it. + +2013-08-13 Eli Zaretskii + + * decompress.c (Fzlib_decompress_region) [WINDOWSNT]: Return Qnil + if loading zlib failed. + +2013-08-13 Jan Djärv + + * nsterm.m (ns_set_vertical_scroll_bar): Fix breakage intruduced by + 2013-08-13 checkin below. Change bool to BOOL, rule is: + All Obj-C code uses BOOL, except for interfaces callable from C. + + * nsterm.h: Fix CGFloat for OSX 10.4 (Bug#15086). + +2013-08-13 Dmitry Antipov + + * window.h (WINDOW_FRINGE_EXTENDED_P): New macro. + * nsterm.m (ns_set_vertical_scroll_bar): Use it. Use convenient + bool instead of BOOL. + * w32term.h (struct scroll_bar): Convert fringe_extended_p + from Lisp_Object to bitfield. Adjust comment. + * w32term.c (x_scroll_bar_create): Adjust user. + Use WINDOW_FRINGE_EXTENDED_P and bool for boolean. + * xterm.c (XTset_vertical_scroll_bar): Likewise. + Use bool for boolean. + * xterm.h (struct scroll_bar): Prefer commonly used `unsigned' + to `unsigned int' when defining a bitfield. + +2013-08-13 Paul Eggert + + * decompress.c (Fzlib_decompress_region): Try to clarify 'avail_out'. + +2013-08-13 Dmitry Antipov + + * window.h (struct window): Convert left_margin_cols and + right_margin_cols from Lisp_Objects to integers. Adjust comment. + (WINDOW_LEFT_MARGIN_COLS, WINDOW_RIGHT_MARGIN_COLS) + (WINDOW_LEFT_MARGIN_WIDTH, WINDOW_RIGHT_MARGIN_WIDTH): + Adjust users. + * dispnew.c (margin_glyphs_to_reserve): Convert 3rd arg to int. + Adjust comment. + (showing_window_margins_p, update_window_line, update_frame_1): + * fringe.c (draw_fringe_bitmap_1): + * xdisp.c (window_box_width): Adjust users. + * window.c (wset_left_margin_cols, wset_right_margin_cols): Remove. + (adjust_window_margins, set_window_buffer, Fsplit_window_internal): + Use direct assignment. + (Fset_window_configuration, save_window_save, Fwindow_margins): + Convert Lisp_Object to integer and back where appropriate. + (Fset_window_margins): Adjust user. Return t if any margin + was actually changed, and mention this in docstring. + +2013-08-13 Xue Fuqiao + + * syntax.c (forward_word): + * cmds.c (forward_char, backward_char): Mention the optional argument. + +2013-08-13 Dmitry Antipov + + * window.h (struct window): Convert left_fringe_width + and right_fringe_width from Lisp_Objects to integers. + Adjust comment. + (WINDOW_FRINGE_COLS, WINDOW_LEFT_FRINGE_WIDTH) + (WINDOW_RIGHT_FRINGE_WIDTH): Adjust users. + * window.c (wset_left_fringe_width, wset_right_fringe_width): + Remove. + (make_window): Initialize new integer fields to -1. + (Fsplit_window_internal): Use direct assignment. + (Fset_window_configuration, save_window_save): Convert + Lisp_Object to integer and back where appropriate. + (Fset_window_fringes): Adjust user. Return t if any fringe + was actually changed, and mention this in docstring. + +2013-08-13 Dmitry Antipov + + * keyboard.c (Fdiscard_input): Do not increment update_mode_lines. + * nsfns.m (x_set_cursor_type): + * w32fns.c (x_set_cursor_type): + * xfns.m (x_set_cursor_type): Do not set cursor_type_changed here... + * xdisp.c (set_frame_cursor_types): ...but in common code. + +2013-08-13 Dmitry Antipov + + * font.c (clear_font_cache): New function, stripped from... + (Fclear_font_cache): ...here, which now uses the function + above. Adjust comment. + * font.h (clear_font_cache): Add prototype. + * xfaces.c (clear_face_cache): Use clear_font_cache. + +2013-08-13 Dmitry Antipov + + * window.c (Fset_window_start): Compare `w', not `window' because + `w' might not be equal to `window' after call to decode_live_window. + +2013-08-12 Paul Eggert + + * process.c (deactivate_process): Reset fds to -1 (Bug#15035). + This fixes a problem introduced by the Bug#15035 patch + when using GPG. Reported by Herbert J. Skuhra. + +2013-08-12 Eli Zaretskii + + * decompress.c [WINDOWSNT]: New static variable. + (Fzlib_decompress_region) [WINDOWSNT]: Call init_zlib_functions if + not yet initialized. + +2013-08-12 Lars Magne Ingebrigtsen + + * decompress.c (Fzlib_decompress_region): Support zlib + decompression, too, and rename. + +2013-08-12 Paul Eggert + + Minor zlib configuration tweaks. + * decompress.c (fn_inflateInit2) [!WINDOWSNT]: + Don't assume presence of fn_inflateInit2_ zlib internal function. + +2013-08-12 Lars Magne Ingebrigtsen + + * decompress.c (Fzlib_decompress_gzipped_region): Rename to + include the zlib prefix. + +2013-08-12 Eli Zaretskii + + * decompress.c [WINDOWSNT]: Include windows.h and w32.h. + (DEF_ZLIB_FN, LOAD_ZLIB_FN) [WINDOWSNT]: New macros. Use them to + define static variables that are pointers to zlib functions to be + dynamically loaded. + (init_zlib_functions) [WINDOWSNT]: New function. + (fn_inflateInit2_, fn_inflate, fn_inflateEnd, fn_inflateInit2): + New macros. + (Fdecompress_gzipped_region, unwind_decompress): Use the fn_* + macros instead of invoking the zlib functions directly. + (syms_of_decompress): DEFSYM Qzlib_dll. Staticpro + Szlib_available_p. + +2013-08-12 Dmitry Antipov + + Avoid looping over all frame windows to freeze and unfreeze. + * window.h (struct window): Drop frozen_window_start_p. + (freeze_window_starts): Drop prototype. + * frame.h (struct frame): New frozen_window_starts flag. + (FRAME_WINDOWS_FROZEN): New macro. + * window.c (freeze_window_start, freeze_window_starts): + Remove. + (select_window, replace_window): Adjust users. + * xdisp.c (resize_mini_window): Use FRAME_WINDOWS_FROZEN. + (window_frozen_p): New function. + (redisplay_window): Use it. + +2013-08-12 Paul Eggert + + Fix some fd issues when running subprocesses (Bug#15035). + Fix bugs that can leak files or file descriptors on errors. + Don't unlink open temp files, as that's hard for users to diagnose + when things go awry (e.g., temp disk exhausted). + Don't bother to lock temp files. Check for invalid recursion. + * callproc.c (synch_process_fd): Remove. All uses removed. + (synch_process_tempfile): New var or macro. + (CALLPROC_STDOUT, CALLPROC_STDERR, CALLPROC_PIPEREAD, CALLPROC_FDS): + New constants. + (record_kill_process): New arg, the temp name. All callers changed. + (delete_temp_file): Now just a simple wrapper around unlink. + (call_process_kill): New arg, the call_process_fd array. + Close them all. Clear synch_process_pid. Remove the temp file, + or arrange for it to be removed. + (call_process_cleanup) [MSDOS]: Arg no longer contains file name; + that's been moved to synch_process_tempfile. Caller changed. + Do not remove the tempfile; that's now call_process_kill's + responsibility. + (call_process_cleanup) [!MSDOS]: Do not record unwind-protect for + call_process_kill; the caller now does that. + (call_process_cleanup): Do not close the process fd; that's now + call_process_kill's responsibility. + (Fcall_process): Implement via new function call_process, which + has most of the old body of Fcall_process, but with a different API. + (call_process): New function that does not open or close filefd if + it is nonnegative. Record which fds need to be closed, and let + call_process_kill close (and remove the tempfile, on MSDOS) on error. + Signal an error if invoked recursively (could be done via a hook). + Simplify creation of the tempfile in the MSDOS case. + Don't create the output file until after checking for the executable. + Report any failure to open /dev/null. + Don't open /dev/null for writing twice; once is enough. + Don't create pipe if all output is being discarded or sent to file. + Don't worry about setting up the coding system or reading from the + pipe if all output is being discarded. + Hoist fd_error local into top level, to lessen block nesting. + Don't record deleted pid here; now done by Fcall_process_region. + (Fcall_process) [MSDOS]: Report mktemp failure immediately, + and note its success in synch_process_tempfile. + Do not leak resources when child_setup fails. + (Fcall_process) [!MSDOS && !WINDOWSNT]: Remove duplicate assignment + to child_errno. Remove unnecessary close of fd0; it's close-on-exec. + (create_temp_file): Now returns open fd, with an additional + Lisp_Object * argument to return the name. All callers changed. + Do not close the file; rewind it instead, and leave it open for + the caller. Do not lock the temp file. Unwind-protect the file + and the file-descriptor. + (Fcall_process_region): If the input is /dev/null, unwind-protect it. + If an asynchrounous process, record it here, not in call_process. + (syms_of_callproc) [MSDOS]: Initialize synch_process_tempfile. + * eval.c (set_unwind_protect): New function. + * fileio.c (write_region): New function, generalized from the + old Fwrite_region. Do not lock temp files. + (Fwrite_region): Use it. + * lisp.h (set_unwind_protect, write_region): New decls. + * process.c: Include . + (make_process): Mark fds as initially closed. + (deleted_pid_list): Now a list of pid-filename pairs. + All uses changed. + (close_process_fd): New function. + (SUBPROCESS_STDIN, WRITE_TO_SUBPROCESS, READ_FROM_SUBPROCESS) + (SUBPROCESS_STDOUT, READ_FROM_EXEC_MONITOR, EXEC_MONITOR_OUTPUT): + New constants. Verify that their number matches PROCESS_OPEN_FDS. + (create_process, create_pty, Fmake_serial_process) + (server_accept_connection): Record which fds need to be closed, + and let deactivate_process close them. + (Fmake_network_process): Do not discard the unwind-protect + until it's safe to do so. + (deactivate_process): Close the fds opened by create_process etc. + (Fprocess_send_eof): Adjust to new way of recording open fds. + Report an error if /dev/null can't be opened, instead of aborting. + * process.h (PROCESS_OPEN_FDS): New constant. + (struct Lisp_Process): New member open_fds. + (record_kill_process, record_deleted_pid): Adjust signatures. + (record_deleted_pid): Move decl here ... + * syswait.h (record_deleted_pid): ... from here. + +2013-08-11 Paul Eggert + + * decompress.c: Fix bugs with large buffers and weird inputs. + Tune a bit. Reindent as per usual Emacs style. + (BUFFER_SIZE): Remove. + (Fdecompress_gzipped_region): Do not mishandle input buffers with + more than UINT_MAX bytes. Decompress into the gap instead of into + an auto buffer, as this should avoid copying. Return nil if + 'inflate' returns Z_NEED_DICT, as we have no dictionary. Do not + set immediate_quit; we shouldn't trust zlib code that much. + +2013-08-11 Lars Magne Ingebrigtsen + + * decompress.c (Fdecompress_gzipped_region): Respect all zlib + errors, and really move the gap to where we want it. + + * lisp.h: Include decompress.c support. + + * emacs.c (main): Include decompress.c support. + + * Makefile.in: Include -lz if present. + 2013-08-11 Jan Djärv * nsmenu.m (ns_update_menubar): Call fillWithWidgetValue:frame: