+2013-08-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ 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 <verify.h>.
+ (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 <eggert@cs.ucla.edu>
+
+ * 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 <larsi@gnus.org>
+
+ * 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 <jan.h.d@swipnet.se>
+
+ * nsmenu.m (ns_update_menubar): Call fillWithWidgetValue:frame:
+ (initWithTitle:): Initialize frame to 0.
+ (fillWithWidgetValue:): Call fillWithWidgetValue:frame.
+ (fillWithWidgetValue:frame:): Renamed from
+ fillWithWidgetValue:setDelegate, call initWithTile:frame: if f.
+
+ * nsterm.h (EmacsMenu): fillWithWidgetValue:setDelegate renamed to
+ fillWithWidgetValue:frame:
+
+ * nsfns.m (Fns_convert_utf8_nfd_to_nfc): Allocate and release pool to
+ remove memory leak warnings.
+
+ * nsterm.m (menu_pending_title, ns_get_pending_menu_title): Remove.
+ (ns_check_menu_open): Handle menu == nil. Remove assignment to
+ menu_pending_title.
+
+ * nsmenu.m (ns_update_menubar): Call fillWithWidgetValue:setDelegate.
+ (x_activate_menubar): Update the whole menu.
+ (trackingNotification:): Call ns_check_menu_open if tracking ends.
+ (menuWillOpen:): Increment trackingMenu. For OSX <= 10.6, exit if
+ current event is not NSSystemDefined (Bug#15001).
+ Call ns_check_menu_open only if trackingMenu is 2.
+ (menuDidClose:): New method, decrease trackingMenu.
+ (fillWithWidgetValue:setDelegate:): New method.
+ (fillWithWidgetValue:): Call the above.
+
+ * nsterm.h (EmacsMenu): Add fillWithWidgetValue:setDelegate:
+
+2013-08-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ Omit some unnecessary casts.
+ Many of these go back to the old pre-C89 days, when they may have
+ been needed, but we've been assuming C89 or later for a while now.
+ * alloc.c (live_string_p, live_cons_p, live_symbol_p)
+ (live_float_p, live_misc_p, live_vector_p):
+ * buffer.c (compare_overlays, cmp_for_strings, mmap_find)
+ (mmap_alloc, alloc_buffer_text, enlarge_buffer_text)
+ (defvar_per_buffer):
+ * callint.c (Fcall_interactively):
+ * doc.c (Fsubstitute_command_keys):
+ * filelock.c (get_boot_time):
+ * frame.c (xrdb_get_resource):
+ * gtkutil.c (hierarchy_ch_cb, qttip_cb, style_changed_cb)
+ (delete_cb, xg_dialog_response_cb, xg_maybe_add_timer)
+ (xg_get_file_name_from_selector, menuitem_destroy_callback)
+ (menuitem_highlight_callback, menu_destroy_callback)
+ (xg_update_menu_item, xg_modify_menubar_widgets, menubar_map_cb)
+ (xg_tool_bar_callback, xg_get_tool_bar_widgets)
+ (xg_tool_bar_detach_callback, xg_tool_bar_attach_callback)
+ (xg_tool_bar_help_callback, tb_size_cb):
+ * image.c (xpm_alloc_color, png_read_from_memory)
+ (png_read_from_file, png_load_body, our_memory_skip_input_data)
+ (jpeg_memory_src, jpeg_file_src, imagemagick_load_image)
+ (syms_of_image):
+ * keymap.c (describe_map):
+ * nsfns.m (Fns_display_monitor_attributes_list):
+ * nsmenu.m (process_dialog:):
+ * nsterm.m (hold_event):
+ * process.c (wait_reading_process_output):
+ * regex.c (REGEX_REALLOCATE, re_set_registers, re_exec, regexec):
+ * scroll.c (do_direct_scrolling, scrolling_1):
+ * termcap.c (tgetent):
+ * window.c (check_window_containing, add_window_to_list)
+ (freeze_window_starts):
+ * xdisp.c (compare_overlay_entries, vmessage):
+ * xfns.c (x_window, x_get_monitor_attributes_xinerama)
+ (x_get_monitor_attributes_xrandr)
+ (Fx_display_monitor_attributes_list, x_display_info_for_name)
+ (Fx_open_connection, file_dialog_cb, file_dialog_unmap_cb):
+ * xfont.c (xfont_match, xfont_open):
+ * xmenu.c (x_menu_wait_for_event, menu_highlight_callback)
+ (menubar_selection_callback, menu_position_func)
+ (popup_selection_callback, create_and_show_popup_menu)
+ (dialog_selection_callback, create_and_show_dialog):
+ * xrdb.c (x_get_string_resource):
+ (main) [TESTRM]:
+ * xsmfns.c (x_session_check_input):
+ * xterm.c (x_draw_glyphless_glyph_string_foreground)
+ (xm_scroll_callback, xg_scroll_callback, xg_end_scroll_callback)
+ (xaw_jump_callback, xaw_scroll_callback):
+ Omit unnecessary casts.
+
+2013-08-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ Minor string-length refactoring.
+ * alloc.c (xstrdup): Use memcpy, not strcpy, since the length's known.
+ * frame.c (make_monitor_attribute_list):
+ Prefer build_string to strlen + make_string.
+
+2013-08-10 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xterm.c (x_error_handler): Also ignore BadWindow for X_SetInputFocus,
+ don't check minor_code (Bug#14417).
+
+2013-08-09 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (draw_glyphs): Don't compare row pointers, compare row
+ vertical positions instead. This avoids calling MATRIX_ROW with
+ row numbers that are possibly beyond valid limits. (Bug#15064)
+
+2013-08-09 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Use xstrdup and build_unibyte_string where applicable.
+ * alloc.c (xstrdup): Tiny cleanup. Add eassert.
+ * xfns.c (x_window):
+ * xrdb.c (x_get_customization_string):
+ * xterm.c (xim_initialize):
+ * w32fns.c (w32_window): Use xstrdup.
+ (w32_display_monitor_attributes_list):
+ * emacs.c (init_cmdargs):
+ * keyboard.c (PUSH_C_STR):
+ * nsfont.m (nsfont_open):
+ * sysdep.c (system_process_attributes):
+ * w32.c (system_process_attributes):
+ * xdisp.c (message1, message1_nolog): Use build_unibyte_string.
+
+2013-08-09 Eli Zaretskii <eliz@gnu.org>
+
+ * w32.c (PEXCEPTION_POINTERS, PEXCEPTION_RECORD, PCONTEXT): Define
+ variables of these types so that GDB would know about them, as aid
+ for debugging fatal exceptions. (Bug#15024) See also
+ http://sourceware.org/ml/gdb/2013-08/msg00010.html for related
+ discussions.
+
+2013-08-08 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (ns_update_begin): Don't change clip path if it would be
+ larger than the NSWindow (Bug#14934).
+
+2013-08-08 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Redesign redisplay interface to drop global variable updated_window.
+ Always pass currently updated window as a parameter to update routines.
+ * dispextern.h (updated_window): Remove declaration.
+ (struct redisplay_interface): Pass window parameter to
+ write_glyphs, insert_glyphs, clear_end_of_line, cursor_to
+ and after_update_window_hook.
+ (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line, x_cursor_to):
+ Adjust prototypes.
+ * dispnew.c (updated_window): Remove.
+ (redraw_overlapped_rows, update_marginal_area, update_text_area)
+ (update_window_line): Adjust to match redisplay interface changes.
+ * nsterm.m (ns_update_window_begin, ns_update_window_end)
+ (ns_scroll_run, ns_after_update_window_line):
+ * w32term.c (x_update_window_begin, x_update_window_end)
+ (x_after_update_window_line, x_scroll_run):
+ * xterm.c (x_update_window_begin, x_update_window_end)
+ (x_after_update_window_line, x_scroll_run):
+ * xdisp.c (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
+ Likewise. Adjust comments where appropriate.
+ (x_cursor_to): Simplify because this is always called during window
+ update (but install debugging check anyway).
+ (expose_window): Check must_be_updated_p flag to see whether this
+ function is called during window update.
+
+2013-08-08 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Do not reset window modification event counters excessively.
+ These leftovers and poor man's tricky methods to catch extra
+ redisplay's attention are no longer needed.
+ * frame.c (set_menu_bar_lines_1):
+ * minibuf.c (read_minibuf_unwind):
+ * window.c (Fset_window_start, set_window_buffer, window_resize_apply)
+ (grow_mini_window, shrink_mini_window, window_scroll_pixel_based)
+ (window_scroll_line_based, Fset_window_configuration):
+ * xdisp.c (redisplay_window): Do not reset last_modified and
+ last_overlay_modified counters.
+
+2013-08-07 Jan Djärv <jan.h.d@swipnet.se>
+
+ * xselect.c (x_send_client_event): Set send_event and serial, memset
+ data.l as it might be bigger than data.b. Use 24 bit mask to
+ XSendEvent (Bug#15034).
+
+2013-08-07 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (prepare_menu_bars): Don't call x_consider_frame_title
+ for TTY frames that are not the top frame on their console.
+ (Bug#14616)
+
+2013-08-07 Martin Rudalics <rudalics@gmx.at>
+
+ * w32term.c (w32fullscreen_hook): Really maximize frame when
+ asked for (Bug#14841).
+
+2013-08-07 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Prefer selected_window to Fselected_window, likewise for frames.
+ * buffer.c (Fbuffer_swap_text):
+ * data.c (Fvariable_binding_locus):
+ * window.c (run_window_configuration_change_hook): Adjust users.
+ * w16select.c (Fw16_set_clipboard_data, Fw16_get_clipboard_data):
+ Use decode_live_frame.
+
+2013-08-07 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Be more careful if selected window shows the buffer other than current,
+ use window_outdated only if this is not so. This change should also
+ address some weird issues discussed in Bug#13012.
+ * window.h (window_outdated): New prototype.
+ * window.c (window_outdated): Now here. Convert from static and
+ always assume window's buffer.
+ (Fwindow_end, Fwindow_line_height): Use it.
+ * xdisp.c (reconsider_clip_changes): Remove prototype, drop 2nd arg
+ and always assume window's buffer.
+ (redisplay_window): Adjust user.
+ (redisplay_internal): Call to reconsider_clip_changes once and
+ check whether mode line should be updated only if selected window
+ shows current buffer.
+ (run_window_scroll_functions): Use eassert for debugging check.
+ (Fmove_point_visually, note_mouse_highlight): Use window_outdated.
+
+2013-08-06 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * window.c (window_scroll, window_scroll_pixel_based)
+ (window_scroll_line_based): Use bool for booleans.
+
+2013-08-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ * process.c: Fix minor off-by-one issues in descriptor counts.
+ This shouldn't fix any real bugs, but it cleans up the code a bit.
+ (max_process_desc, max_input_desc): -1, not 0, means none.
+ All uses changed.
+ (delete_input_desc): New function.
+ (delete_write_fd, delete_keyboard_wait_descriptor): Use it.
+ (deactivate_process): Scan backwards when recomuting max_process_desc;
+ that should be faster.
+ (init_process_emacs): Initialize max_input_desc.
+
+2013-08-06 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Use region cache to speedup bidi_find_paragraph_start.
+ * buffer.h (struct buffer): New member bidi_paragraph_cache.
+ Rename cache_long_line_scans to cache_long_scans.
+ * buffer.c (bset_cache_long_line_scans): Rename to
+ bset_cache_long_scans.
+ (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer)
+ (Fbuffer_swap_text, init_buffer_once): Take bidi_paragraph_cache
+ into account.
+ (syms_of_buffer): Rename cache-long-line-scans to
+ cache-long-scans. Adjust docstring.
+ * search.c (newline_cache_on_off):
+ * indent.c (width_run_cache_on_off): Adjust users.
+ * bidi.c (bidi_paragraph_cache_on_off): New function.
+ (bidi_find_paragraph_start): Use bidi_paragraph_cache if needed.
+ * insdel.c (prepare_to_modify_buffer): Invalidate
+ bidi_paragraph_cache if enabled.
+
+2013-08-06 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Invalidate region caches only if buffer text is going to be changed.
+ * lisp.h (modify_region_1): Remove 3rd arg and rename to...
+ (modify_text): ...new prototype.
+ (prepare_to_modify_buffer_1): New prototype.
+ * textprop.c (modify_region): Rename to...
+ (modify_text_properties): ...new function.
+ (add_text_properties_1, set_text_properties, Fremove_text_properties)
+ (Fremove_list_of_text_properties): Adjust users.
+ * insdel.c (modify_region_1): Remove 3rd arg and reimplement as...
+ (modify_text): ...new function.
+ (prepare_to_modify_buffer): Reimplement mostly as a wrapper for...
+ (prepare_to_modify_buffer_1): ...new function.
+ * casefiddle.c (casify_region):
+ * editfns.c (Fsubst_char_in_region, Ftranslate_region_internal)
+ (Ftranspose_regions): Use modify_text.
+
+2013-08-05 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * lisp.mk (lisp): Add nadvice.elc.
+
+2013-08-05 Dmitry Antipov <dmantipov@yandex.ru>
+
+ New macro to iterate over live buffers similar to frames.
+ * buffer.h (FOR_EACH_LIVE_BUFFER): New macro.
+ (Vbuffer_alist, Qpriority, Qbefore_string, Qafter_string):
+ Declare buffer-related variables here to offload lisp.h.
+ * buffer.c (Vbuffer_alist): Adjust comment.
+ (Fget_file_buffer, get_truename_buffer, Fother_buffer)
+ (other_buffer_safely):
+ * data.c (store_symval_forwarding):
+ * dispnew.c (Fframe_or_buffer_changed_p):
+ * fileio.c (Fdo_auto_save):
+ * filelock.c (unlock_all_files):
+ * minibuf.c (read_minibuf): Use FOR_EACH_LIVE_BUFFER.
+
+2013-08-04 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix some minor races in hosts lacking mkostemp (Bug#15015).
+ * callproc.c (create_temp_file):
+ * filelock.c (create_lock_file):
+ Assume mkostemp, since it's now provided by Gnulib.
+
+2013-08-04 Eli Zaretskii <eliz@gnu.org>
+
+ * w32.c (mkostemp): New function.
+ (mktemp): Remove, no longer used. Most of the code reused in
+ mkostemp. (Bug#15015)
+ (mktemp): Don't undef.
+
+2013-08-04 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * dispnew.c (glyph_matrix_count, glyph_pool_count):
+ Move under GLYPH_DEBUG and ENABLE_CHECKING.
+ (new_glyph_matrix, free_glyph_matrix, new_glyph_pool)
+ (free_glyph_pool, check_glyph_memory): Likewise for
+ all users. Adjust comments where appropriate.
+
+2013-08-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ * composite.h: Minor fixups.
+ (composition_registered_p): Rename from COMPOSITION_REGISTERD_P
+ to fix a misspelling, and change it to an inline function while
+ we're at it (it need not be a macro). All uses changed.
+ (composition_method, composition_valid_p):
+ Rewrite to avoid assignments in if-conditions.
+
+2013-08-03 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Do not use global Lisp_Object in composition macros.
+ * composite.h (composition_temp): Remove declaration.
+ (COMPOSITION_METHOD, COMPOSITION_VALID_P): Replace with...
+ (composition_method, composition_valid_p): ...inline functions.
+ (compose_region): Remove the leftover.
+ * composite.c (composition_temp): Remove.
+ (run_composition_function, update_compositions)
+ (composition_compute_stop_pos, composition_adjust_point)
+ (Ffind_composition_internal):
+ * coding.c (handle_composition_annotation):
+ * xdisp.c (handle_composition_prop, check_point_in_composition):
+ Related users changed.
+
+2013-08-03 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Drop FRAME_PTR typedef.
+ * composite.c, font.c, font.h, fontset.c, fontset.h, frame.c, frame.h:
+ * ftfont.c, ftxfont.c, gtkutil.c, gtkutil.h, image.c, keyboard.c:
+ * menu.c, menu.h, msdos.c, nsfns.m, nsfont.m, nsmenu.m, nsterm.h:
+ * nsterm.m, scroll.c, term.c, w32fns.c, w32font.c, w32font.h:
+ * w32inevt.c, w32inevt.h, w32menu.c, w32notify.c, w32term.c, w32term.h:
+ * w32uniscribe.c, w32xfns.c, widget.c, window.c, xdisp.c, xfaces.c:
+ * xfns.c, xfont.c, xftfont.c, xmenu.c, xselect.c, xterm.c:
+ All related users changed.
+
+2013-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * eval.c (default_toplevel_binding): New function.
+ (Fdefvar): Use it.
+ (unbind_to, backtrace_eval_unrewind): Do a bit of CSE simplification.
+ (Fdefault_toplevel_value, Fset_default_toplevel_value): New subrs.
+ (syms_of_eval): Export them.
+ * data.c (Fdefault_value): Micro cleanup.
+ * term.c (init_tty): Use "false".
+
+2013-08-02 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Fix X GC leak in GTK and raw (no toolkit) X ports.
+ * xterm.c (x_free_frame_resources): If white and black relief
+ GCs are allocated, always free them here.
+ * xfns.c (x_make_gc): Omit redundant initialization.
+ * widget.c (create_frame_gcs): Remove the leftover.
+ (EmacsFrameDestroy): Do nothing because all GCs are now freed
+ in x_free_frame_resources.
+
+2013-08-02 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (windowWillResize:toSize:): Only change title if
+ ! maximizing_resize && FULLSCREEN_NONE (Bug#15005). strdup title before
+ modifying it.
+ (viewDidEndLiveResize): New method.
+
+ * nsterm.h (EmacsView): Add maximizing_resize, put it and old_title
+ inside NS_IMPL_COCOA.
+
+2013-08-02 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * insdel.c (adjust_after_replace, replace_range, del_range_2):
+ Do not check whether undo is enabled because record_insert and
+ record_delete does that themselves.
+
+2013-08-02 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * xterm.h (struct x_output) [HAVE_X_I18N]: Remove xic_base_fontname
+ member which is not really used any more.
+ (FRAME_XIC_BASE_FONTNAME): Remove.
+ * xfns.c (xic_free_fontset): Adjust user.
+ * xmenu.c (mouse_position_for_popup, x_activate_menubar)
+ (update_frame_menubar, set_frame_menubar, free_frame_menubar)
+ (create_and_show_popup_menu, xmenu_show, create_and_show_dialog)
+ (xdialog_show): Use eassert for debugging check.
+ * w32term.c (x_unfocus_frame): Remove unused dummy function.
+
+2013-08-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ * fileio.c, fns.c (merge): Move extern decl from here ...
+ * lisp.h (merge): ... to here.
+
+2013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Fix last font-related change.
+ * w32font.h (w32font_list_internal, w32font_match_internal):
+ Fix prototype.
+ * w32uniscribe.c (uniscribe_list, uniscribe_match):
+ (uniscribe_list_family): Adjust to match font API change.
+ MS-Windows breakage reported by Juanma Barranquero <lekktu@gmail.com>
+ at http://lists.gnu.org/archive/html/emacs-devel/2013-08/msg00006.html.
+
+2013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * frame.h (FRAME_MOUSE_UPDATE):
+ * nsterm.m (ns_frame_up_to_date): Omit redundant check
+ whether hlinfo->mouse_face_mouse_frame is non-NULL.
+
+2013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Avoid redundant Lisp_Object <-> struct frame conversions in font API.
+ * font.h (struct font_driver): Change list, match, and list_family
+ functions to accept struct frame * as first arg.
+ * font.c (font_score, font_compare, font_sort_entities): Remove
+ prototypes.
+ (font_sort_entities, font_list_entities, font_select_entity):
+ (font_find_for_lface, Flist_fonts, Ffont_family_list): Adjust to
+ match font API change.
+ * xfont.c (xfont_list, xfont_match, xfont_list_family):
+ * ftfont.c (ftfont_list, ftfont_match, ftfont_list_family):
+ * ftxfont.c (ftxfont_list, ftxfont_match):
+ * xftfont.c (xftfont_list, xftfont_match):
+ * nsfont.m (nsfont_list, nsfont_match, nsfont_list_family):
+ * w32font.c (w32font_list, w32font_match, w32font_list):
+ (w32font_list_internal, w32_font_match_internal): Likewise.
+ * xfaces.c (Fx_family_fonts): Adjust user.
+
+2013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Do not use pure Xism x_wm_set_icon_position in non-X ports.
+ * frame.c (x_set_frame_parameters): Call to x_wm_set_icon_position
+ only if HAVE_X_WINDOWS is in use.
+ * frame.h (x_set_frame_parameters): Move under HAVE_X_WINDOWS.
+ * nsterm.m (x_wm_set_icon_position): Remove no-op.
+ * w32term.c (x_wm_set_icon_position): Likewise.
+ * w32fns.c (x_icon): Adjust user.
+
+2013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * xterm.c (last_mouse_press_frame): Remove the
+ leftover which is not really used any more.
+ (handle_one_xevent, syms_of_xterm): Adjust users.
+ (x_flush): Call XFlush once per each X display, not frame.
+ This is better because this code always unconditionally skips
+ non-X frames in Vframe_list and issues the only XFlush if we
+ have more than one X frame on the same X display.
+ (any_help_event_p, x_draw_glyph_string_background, x_display_ok):
+ Use bool for booleans.
+ (x_draw_glyph_string_background, cvt_string_to_pixel):
+ (cvt_pixel_dtor): Drop unnecessary prototypes.
+ * xterm.h (x_display_ok): Adjust prototype.
+
+2013-07-31 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Drop unnecessary functions that deals with frame pixel size.
+ * frame.h, msdos.h, w32term.h, xterm.h (x_pixel_width)
+ (x_pixel_height): Drop prototypes.
+ * msdos.c, nsfns.m, w32fns.c, xfns.c (x_pixel_width)
+ (x_pixel_height): Drop implementations.
+ * frame.c (Fframe_pixel_height): Use FRAME_PIXEL_HEIGHT
+ which should be always valid for window frame.
+ (Frame_pixel_width): Likewise with FRAME_PIXEL_WIDTH.
+ * w32menu.c (Fx_popup_dialog):
+ * xmenu.c (Fx_popup_dialog): Likewise for both.
+
+2013-07-31 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * frame.c (Fmake_terminal_frame): Use store_in_alist to setup
+ frame parameters and call to Fmodify_frame_parameters just once.
+ (Fset_frame_height, Fset_frame_width): Mention nil frame in docstring.
+ (Fset_frame_size, Fset_frame_position): Use decode_live_frame
+ and mention nil frame in docstring.
+
+2013-07-31 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * frame.c (make_frame, x_set_frame_parameters): Use bool for boolean.
+ (x_figure_window_size): Likewise. Adjust to return long.
+ (syms_of_frame): Do not DEFSYM Qterminal_live_p.
+ (toplevel): Move Qterminal_live_p to...
+ * terminal.c (toplevel): ...here, make it static, and...
+ (syms_of_terminal): ...DEFSYM here.
+ * frame.h (Qterminal_live_p): Remove declaration.
+ (make_frame, x_figure_window_size): Adjust prototype.
+ * nsfns.m (Fx_create_frame): Use long for window flags.
+
+2013-07-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix tempfile bug on platforms lacking mkostemp and mkstemp (Bug#14986).
+ * callproc.c (create_temp_file) [! (HAVE_MKOSTEMP || HAVE_MKSTEMP)]:
+ Do not assume that emacs_close (INT_MAX) is a no-op.
+
+2013-07-30 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * xfaces.c (make_face_cache): For struct face_cache, prefer
+ xmalloc to xzalloc and so avoid redundant call to memset.
+ (Finternal_set_lisp_face_attribute): Fix comment typo and style.
+
+2013-07-30 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * fringe.c (draw_window_fringes, update_window_fringes)
+ (compute_fringe_widths):
+ * w32term.c (x_draw_glyph_string):
+ * window.c (candidate_window_p, Frecenter):
+ * xfaces.c (realize_basic_faces, realize_default_face)
+ (Fbitmap_space_p, Finternal_set_lisp_face_attribute)
+ (x_update_menu_appearance, face_attr_equal_p, lface_equal_p):
+ * xfns.c (x_set_cursor_color, xic_free_xfontset):
+ * xmenu.c (Fx_menu_bar_open_internal):
+ * xselect.c (x_reply_selection_request, Fx_get_atom_name):
+ * xsettings.c (xft_settings_event):
+ * xterm.c (x_draw_glyph_string, x_had_errors_p):
+ Use bool for booleans. Adjust style and comments where
+ appropriate.
+ * dispextern.h (draw_window_fringes, update_window_fringes)
+ (compute_fringe_widths):
+ * xterm.h (x_had_errors_p): Adjust prototype.
+
+2013-07-30 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * frame.c (Fmodify_frame_parameters): Always check 2nd arg with
+ CHECK_LIST. Rewrite the loop to avoid useless local variable.
+
+2013-07-29 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * fns.c (toplevel): Remove comment before Fsafe_length because
+ it checks for QUIT.
+
+2013-07-28 Paul Eggert <eggert@cs.ucla.edu>
+
+ * frame.c (delete_frame): Avoid unnecessary 'this_f' test (Bug#14970).
+
+2013-07-28 Eli Zaretskii <eliz@gnu.org>
+
+ * w32fns.c (w32_wnd_proc) <WM_IME_STARTCOMPOSITION>: Make sure the
+ frame which got the message is still alive, before dereferencing
+ its pointer. (Bug#14970)
+
+ * frame.c (delete_frame): Test "this" frame's minibuffer window to
+ be a live window, before using it as such. (Bug#14970)
+
+2013-07-27 Eli Zaretskii <eliz@gnu.org>
+
+ * w32term.c (w32_read_socket) <WM_KILLFOCUS>: Call
+ w32_detect_focus_change instead of doing part of its job by hand.
+ This fixes the problem whereby FOCUS_OUT events were not sent to
+ the event queue.
+
+2013-07-26 Eli Zaretskii <eliz@gnu.org>
+
+ * process.c (Fprocess_list): Doc fix.
+
+ * w32term.c (w32_read_socket) <WM_EMACS_PAINT>: Warn about frame
+ being re-exposed only if it didn't ask to become visible.
+ <WM_SIZE>: Under SIZE_RESTORED, only set the frame visible if it
+ was previously iconified. (Bug#14841)
+ (x_iconify_frame): Mark the frame iconified.
+
+2013-07-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix minor problems found by static checking.
+ * eval.c (get_backtrace_frame, backtrace_eval_unrewind): Now static.
+ (backtrace_eval_unrewind): ';' -> '{}' to pacify GCC.
+
+2013-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * eval.c (set_specpdl_old_value): New function.
+ (unbind_to): Minor simplification.
+ (get_backtrace_frame): New function.
+ (Fbacktrace_frame): Use it. Add `base' argument.
+ (backtrace_eval_unrewind, Fbacktrace_eval): New functions.
+ (syms_of_eval): Export backtrace-eval.
+ * xterm.c (x_focus_changed): Simplify.
+
+2013-07-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * fileio.c (Finsert_file_contents): Avoid double-close (Bug#14936).
+
+2013-07-24 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (redisplay_window): Instead of moving point out of
+ scroll margin, reject the force_start method, and try scrolling
+ instead. (Bug#14780)
+
+2013-07-24 Ken Brown <kbrown@cornell.edu>
+
+ * alloc.c (make_save_ptr): Define if HAVE_NTGUI is defined
+ (Bug#14944).
+
+2013-07-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ * eval.c (Fprogn): Do not check that BODY is a proper list.
+ This undoes the previous change. The check slows down the
+ interpreter, and is not needed to prevent a crash. See
+ <http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00693.html>.
+
+2013-07-23 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in ($(etc)/DOC, temacs$(EXEEXT)): Ensure etc/ exists.
+
2013-07-23 Paul Eggert <eggert@cs.ucla.edu>
+ Port to GNU/Linux systems with tinfo but not ncurses.
+ * dispnew.c (init_display): Depend on USE_NCURSES, not GNU_LINUX,
+ to decide whether ncurses is being used. Without this change,
+ GCC complains about tgetent not being declared, on a system
+ that has tinfo installed but ncurses not installed.
+
* eval.c (Fprogn): Check that BODY is a proper list.
Tune UNEVALLED functions by using XCAR instead of Fcar, etc.
code a bit. It makes no difference on POSIXish platforms but
apparently it fixes a bug on w32.
- Fix bug where insert-file-contents closes a file twice. (Bug#14839).
+ Fix bug where insert-file-contents closes a file twice (Bug#14839).
* fileio.c (close_file_unwind): Don't close if FD is negative;
this can happen when unwinding a zapped file descriptor.
(Finsert_file_contents): Unwind-protect the fd before the point marker,
(make_lispy_focus_in, make_lispy_focus_out): Declare and define.
(kbd_buffer_get_event): For FOCUS_IN, make a focus_in event if no
switch frame event is made. Check ! NILP (event->arg) if X11 (moved
- from xterm.c). Make focus_out event for FOCUS_OUT_EVENT if NS or X11
+ from xterm.c). Make focus_out event for FOCUS_OUT_EVENT if NS or X11
and there is a focused frame.
(head_table): Add focus-in and focus-out.
(keys_of_keyboard): Add focus-in and focus-out to Vspecial_event_map,
(emacswrite_sig, emacs_perror): New functions.
* xrdb.c (fatal): Don't invoke perror, since errno might be garbage.
-2013-07-08 Magnus Henoch <magnus.henoch@gmail.com> (tiny change).
+2013-07-08 Magnus Henoch <magnus.henoch@gmail.com> (tiny change)
* image.c (imagemagick_load_image): Do not use MagickExportImagePixels
on NS even if it is present. Pixmap on NS is a void*.
Now static.
* lisp.h: Remove the abovementioned defns and decls.
- Use functions, not macros, for XINT etc. (Bug#11935).
+ Use functions, not macros, for XINT etc (Bug#11935).
In lisp.h, prefer functions to function-like macros, and
constants to object-like macros, when either will do. This:
. simplifies use, as there's no more need to worry about