Don't overuse 'const' in types of locals.
[bpt/emacs.git] / src / ChangeLog
index 324fa15..d477e3d 100644 (file)
@@ -1,5 +1,864 @@
+2013-09-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Don't overuse 'const' in types of locals.
+       * bidi.c (bidi_count_bytes):
+       * gtkutil.c, gtkutil.h (xg_event_is_for_menubar)
+       (xg_event_is_for_scrollbar):
+       * xselect.c (x_handle_property_notify)
+       (x_handle_selection_notify, x_handle_dnd_message):
+       * xsettings.c, xsettings.h (xft_settings_event):
+       * xterm.c (x_handle_net_wm_state, handle_one_event)
+       (x_menubar_window_to_frame, x_detect_focus_change)
+       (construct_mouse_click, note_mouse_movement)
+       (x_scroll_bar_to_input_event, x_scroll_bar_expose)
+       (x_scroll_bar_handle_click, x_scroll_bar_note_movement)
+       (handle_one_xevent, x_handle_net_wm_state):
+       * xterm.h (x_handle_property_notify, x_handle_selection_notify)
+       (x_handle_dnd_message):
+       Avoid unnecessary 'const', typically the second 'const' in
+       'const foo * const arg', a 'const' that does not affect the API
+       and doesn't significantly help the human reader.
+
+2013-09-17  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * image.c (fn_g_type_init) [WINDOWSNT]: Define and load
+       only if Glib < 2.36.0.
+       (fn_g_type_init) [!WINDOWSNT]: Define only if Glib < 2.36.0.
+       * xsettings.c (init_gconf, init_gsettings): Do not check
+       for g_type_init.
+       * xterm.c (handle_one_xevent): Do not call to x_clear_area
+       if GTK >= 2.7.0.
+
+2013-09-16  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * xsettings.c (init_gconf, init_gsettings): Check for Glib 2.36.0
+       before calling g_type_init.
+
+       * font.c (syms_of_font): Move call to syms_of_(ns|mac)font ...
+
+       * nsterm.m (syms_of_nsterm): ... to here.
+
+2013-09-16  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xterm.c (toolkit_scroll_bar_interaction): Use bool for boolean.
+       (ignore_next_mouse_click_timeout): Use Time as X does.
+       (handle_one_xevent): Avoid cast and use unsigned comparison.
+
+2013-09-16  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Do not copy X event in handle_one_xevent except KeyPress case.
+       Wnen XEvent is processed, it is unlikely to be changed except
+       KeyPress case, so we can avoid copying and use const pointer to
+       const data to make sure that an event is not changed elsewhere.
+       * xterm.c (handle_one_xevent): Change 2nd arg to 'const XEvent *
+       const' and do not create local copy except for the KeyPress event.
+       Use casts to avoid a few glitches.  Adjust formatting.  Add comments.
+       (SET_SAVED_BUTTON_EVENT): Remove and move the code to the only user.
+       (x_handle_net_wm_state, x_menubar_window_to_frame)
+       (x_detect_focus_change, construct_mouse_click, note_mouse_movement)
+       (x_scroll_bar_to_input_event, x_scroll_bar_expose)
+       (x_scroll_bar_handle_click, x_scroll_bar_note_movement):
+       * gtkutil.c (xg_event_is_for_menubar, xg_event_is_for_scrollbar):
+       * xselect.c (x_handle_property_notify, x_handle_selection_notify)
+       (x_handle_dnd_message):
+       * xsettings.c (xft_settings_event):
+       Use 'const XEvent * const' where appropriate.
+       * xterm.h, gtkutil.h, xsettngs.h: Adjust related prototypes.
+
+2013-09-16  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Fix X event waiting to handle multiple frames.
+       * frame.h (struct frame) [HAVE_X_WINDOWS]: New member wait_event_type.
+       * xterm.c (pending_event_wait): Remove.  Adjust users.
+       (x_detect_focus_change): Pass frame arg.
+       (handle_one_xevent): Find related frame early and clear per-frame
+       wait_event_type only if this is an event for the relevant frame.
+       (x_wait_for_event): Use per-frame wait_event_type.
+
+2013-09-15  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsfns.m (Fx_create_frame): Fix font driver registration for
+       GNUStep.
+
+       * font.c (syms_of_font): Check MAC_OS_X_VERSION_MAX_ALLOWED >= 1050
+       for syms_of_macfont.
+
+       * nsterm.m: Include macfont.h.
+       (ns_tmp_flags, ns_tmp_font): Remove.
+       (ns_compute_glyph_string_overhangs): Check for driver Qns.
+       (ns_draw_glyph_string): Use local variables instead of ns_tmp_flags,
+       ns_tmp_font.  Call ns_draw_text_decoration here instead of nsfont.m.
+       (changeFont:): Fix code style.  Check for font driver type when
+       getiing font.
+
+       * nsterm.h (FONT_DESCENT, FONT_ASCENT): Define to (f)->ascent and
+       (f)->descent.
+
+       * nsfont.m (ns_tmp_flags, ns_tmp_font): Remove.
+       (nsfont_open): Set font driver type.
+       Set font->ascent and font->descent.  Figure out font instead of
+       ns_tmp_font, and flags instead of ns_tmp_flags.
+       Fix indentation. Remove call to ns_draw_text_decoration,
+       moved to nsterm.
+
+       * nsfns.m: Include macfont.h.
+       (Fx_create_frame): Register macfont driver, make a better default font.
+       (Fns_popup_font_panel): Get font from macfont driver, if used.
+
+       * macfont.m, macfont.h, maccuvs.h: New files.
+
+       * font.h: Declare syms_of_macfont.
+
+       * font.c (syms_of_font): Call syms_of_macfont.
+
+       * Makefile.in (NS_OBJ, SOME_MACHINE_OBJECTS): Add macfont.o.
+
+2013-09-15  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Drop VERTICAL_SCROLL_BAR_WIDTH_TRIM.  For X, it is zero since 1999,
+       and it is always zero for others, so I assume that this is an ancient
+       leftover which nobody will want to change any more.
+       * xterm.h, w32term.h, nsterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Remove.
+       (VERTICAL_SCROLL_BAR_INSIDE_WIDTH):
+       * frame.c (x_set_scroll_bar_width):
+       * w32fns.c (w32_createscrollbar):
+       * w32term.c (w32_set_vertical_scroll_bar):
+       * xfns.c (x_set_scroll_bar_default_width):
+       * xterm.c (XTflash, x_scroll_bar_create, XTset_vertical_scroll_bar)
+       (x_scroll_bar_expose): Related users changed.
+
+2013-09-15  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xterm.h (FRAME_X_SCREEN_NUMBER): Add comment.
+       (BLACK_PIX_DEFAULT, WHITE_PIX_DEFAULT): Use FRAME_X_SCREEN_NUMBER.
+       (SCROLL_BAR_X_WIDGET, SET_SCROLL_BAR_X_WIDGET) [USE_X_TOOLKIT]:
+       Define as such.
+       * frame.h (FRAME_SMALLEST_CHAR_WIDTH, FRAME_SMALLEST_FONT_HEIGHT):
+       Define once here...
+       * nsterm.h, w32term.h, xterm.h: ...and not here.
+       * w32term.h (SCROLL_BAR_X_WIDGET, SET_SCROLL_BAR_X_WIDGET):
+       Remove unused Xisms.
+       * xterm.c, xfns.c (toplevel): Remove #ifdef HAVE_X_WINDOWS because
+       these modules are never compiled otherwise.
+
+2013-09-14  Eli Zaretskii  <eliz@gnu.org>
+
+       * buffer.c (syms_of_buffer) <left-margin-width, right-margin-width>:
+       Doc fix.  (Bug#15375)
+
+2013-09-13  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Unify Fx_focus_frame between all ports.
+       * frame.h (x_focus_frame): New prototype.
+       * xfns.c (Fx_focus_frame): Remove.
+       (syms_of_xfns): Do not defsubr it.
+       (x_focus_frame): X implementation.
+       * nsfns.m (Fx_focus_frame): Remove.
+       (syms_of_nsfns): Do not defsubr it.
+       (x_focus_frame): NS implementation.
+       * w32term.c (Fx_focus_frame): Remove.
+       (x_focus_on_frame): Rename to...
+       (x_focus_frame): W32 implementation.
+       * w32term.h (x_focus_on_frame): Remove prototype.
+       * w32fns.c (Fx_focus_frame): Remove.
+       (syms_of_w32fns): Do not defsubr it.
+       * frame.c (Fx_focus_frame): Define here.
+       (syms_of_frame): Defsubr here.
+       * gtkutil.c (xg_tool_bar_callback): Use x_focus_frame.
+
+2013-09-13  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Unify FRAME_window_system_DISPLAY_INFO macros between all ports.
+       All of them are replaced with FRAME_DISPLAY_INFO, defined in
+       each port to reference the port-specific window system data.
+       * msdos.h (FRAME_X_DISPLAY_INFO): Remove.
+       (FRAME_DISPLAY_INFO): Define.
+       * w32term.h (FRAME_W32_DISPLAY_INFO, FRAME_X_DISPLAY_INFO): Remove.
+       (FRAME_DISPLAY_INFO): Define.  Adjust users.
+       * xterm.h (FRAME_X_DISPLAY_INFO): Remove.
+       (FRAME_DISPLAY_INFO): Define.  Adjust users.
+       * frame.h (FRAME_RES_X, FRAME_RES_Y): Unify.
+       * font.c, frame.c, gtkutil.c, image.c, menu.c, msdos.c, nsfns.m:
+       * nsfont.m, nsterm.m, w32fns.c, w32font.c, w32menu.c, w32term.c:
+       * w32xfns.c, widget.c, xdisp.c, xfaces.c, xfns.c, xfont.c, xmenu.c:
+       * xselect.c, xterm.c: All related users changed.
+
+2013-09-13  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xterm.h (x_window_to_frame, x_any_window_to_frame)
+       (x_menubar_window_to_frame): Remove prototypes.
+       * xfns.c (x_window_to_frame, x_any_window_to_frame)
+       (x_menubar_window_to_frame, x_top_window_to_frame):
+       Move from here...
+       * xterm.c (x_window_to_frame, x_any_window_to_frame)
+       (x_menubar_window_to_frame, x_top_window_to_frame):
+       ...to here and convert all but the last to static.
+
+2013-09-12  Eli Zaretskii  <eliz@gnu.org>
+
+       * lisp.mk (lisp): Add w32-common-fns.elc.
+
+2013-09-12  Xue Fuqiao  <xfq.free@gmail.com>
+
+       * charset.c (char_charset): Document an exception for char-charset.
+
+2013-09-12  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xterm.h (x_display_info): New field last_user_time...
+       * xterm.c (toplevel): ...to replace static last_user_time.
+       (handle_one_xevent, x_ewmh_activate_frame): Adjust users.
+
+2013-09-12  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xterm.c (x_set_scroll_bar_thumb) [USE_LUCID && !HAVE_XAW3D]: Clip
+       scroll bar values to prevent thumb from disappear and update comment.
+
+2013-09-11  Glenn Morris  <rgm@gnu.org>
+
+       * emacs.c (usage_message): Possessive apostrophe tweak.
+
+2013-09-11  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * nsterm.m (syms_of_nsterm): Use Qns.
+       * w32fns.c (Fx_open_connection): Remove old '#if 0' code.
+       * w32term.c (w32_create_terminal, syms_of_w32term): Use Qw32.
+       * xfns.c (x_display_info_for_name, Fx_open_connection):
+       Remove old '#if 0' code.
+       (syms_of_xfns): Use Qx.
+       * termhooks.h (fullscreen_hook): Remove the leftover.
+       (struct terminal): Fix typo in comment.
+
+2013-09-11  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Cleaning up a few X scroll bar bits.
+       * termhooks.h (enum scroll_bar_part): Add scroll_bar_nowhere member.
+       * xterm.h (struct scroll_bar) [USE_TOOLKIT_SCROLL_BARS && USE_LUCID]:
+       New member last_seen_part, going to replace...
+       * xterm.c [USE_TOOLKIT_SCROLL_BARS]: ...global last_scroll_bar_part.
+       (xt_action_hook) [USE_LUCID]: Adjust user.
+       (xm_scroll_callback, xg_scroll_callback): Do not bloat with
+       Lucid-specific scroll bar support.
+       (xaw_jump_callback, xaw_scroll_callback): Prefer enum scroll_par_part
+       to int and adjust to use last_seen_part member.
+       (x_set_toolkit_scroll_bar_thumb) [USE_LUCID]: Adjust user.
+       (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS && USE_LUCID]:
+       Initialize last_seen_part.
+
+2013-09-11  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * insdel.c (insert_from_buffer_1): Don't mark buffer as modified when
+       insert-buffer-substring an empty string.
+
+2013-09-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xdisp.c (Ftool_bar_lines_needed): Declare as 'const' if ifdeffed out,
+       avoiding a GCC warning.
+
+2013-09-11  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Ifdef away frame tool bar code when it is not really used.
+       * frame.h (struct frame) [HAVE_WINDOW_SYSTEM && !USE_GTK && !HAVE_NS]:
+       Move tool_bar_window, desired_tool_bar_string, current_tool_bar_string
+       and minimize_tool_bar_window_p under the above.
+       (fset_current_tool_bar_string, fset_desired_tool_bar_string)
+       (fset_tool_bar_window): Likewise.
+       * dispnew.c (clear_current_matrices, clear_desired_matrices)
+       (adjust_frame_glyphs_for_window_redisplay, free_glyphs, update_frame)
+       (change_frame_size_1):
+       * window.c (window_from_coordinates, Frecenter): Adjust users.
+       * window.h (WINDOW_TOOL_BAR_P): Define to zero when frame tool bar
+       code is not really used.
+       * xdisp.c (build_desired_tool_bar_string, display_tool_bar_line)
+       (tool_bar_lines_needed, MAX_FRAME_TOOL_BAR_HEIGHT, tool_bar_item_info)
+       (get_tool_bar_item, handle_tool_bar_click, note_tool_bar_highlight)
+       [!USE_GTK && !HAVE_NS]: Define as such.
+       (Ftool_bar_lines_needed, redisplay_tool_bar, show_mouse_face)
+       (note_mouse_highlight, expose_frame):
+       * xfns.c (x_set_tool_bar_lines):
+       * xterm.c (handle_one_xevent): Adjust users.
+
+2013-09-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix corruption with multiple emacsclient -t instances (Bug#15222).
+       This bug was introduced by my 2013-08-26 patch, which incorrectly
+       assumed that the terminfo implementation doesn't use termcap buffers.
+       * term.c (init_tty) [TERMINFO]: Remove optimization, as
+       these buffers apparently are used after all.
+       * termchar.h (TERMCAP_BUFFER_SIZE) [TERMINFO]: Define here too.
+       (struct tty_display_info): Define members termcap_term_buffer and
+       termcap_strings_buffer even if TERMINFO.
+
+2013-09-11  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Fix last change.
+       * data.c (Feqlsign, Flss, Fgtr, Fleq, Fgeq): Add convenient
+       'usage' docstring entry to pacify make-docfile.
+
+2013-09-11  Barry O'Reilly  <gundaetiapo@gmail.com>
+
+       Change comparison functions =, <, >, <=, >= to take many arguments.
+       * data.c: Change comparison functions' interface and implementation.
+       * lisp.h: Make arithcompare available for efficient two arg
+       comparisons.
+       * bytecode.c: Use arithcompare.
+       * fileio.c: Use new interface.
+
+2013-09-11  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * keyboard.c (read_char): Don't break immediate_echo (bug#15332).
+
+2013-09-10  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * eval.c (Feval): Document the new use of `lexical'.
+
+2013-09-09  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Review and drop old frame resize hack.
+       * frame.h (struct frame): Remove force_flush_display_p.
+       * dispnew.c (update_frame): Adjust user and don't call
+       flush_frame here.  The comment has said that there was an issues
+       with redisplaying fringes, but I don't see any differences with
+       and without this hack.  Hopefully we can continue without it.
+       * xdisp.c (clear_garbaged_frames): Adjust user and do not clear
+       current frame matrices twice if resized_p is set.
+
+2013-09-09  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Do not populate pure Xism x_sync to other ports.
+       * frame.h (x_sync): Move under HAVE_X_WINDOWS.
+       * frame.c (other_visible_frames) [HAVE_X_WINDOWS]: Use as such.
+       * nsfns.m, w32xfns.c (x_sync): Remove no-op.
+       * w32term.h (x_sync): Remove prototype.
+
+2013-09-09  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Cleanup frame flushing.
+       * dispextern.h (struct redisplay_interface):
+       Drop flush_display_optional because flush_display is enough
+       for X and flushing via RIF is just a no-op for others.
+       * frame.h (flush_frame): New function.
+       * dispnew.c (update_frame):
+       * minibuf.c (read_minibuf):
+       * xdisp.c (echo_area_display, redisplay_preserve_echo_area):
+       Use it.
+       * keyboard.c (detect_input_pending_run_timers): Do not flush
+       all frames but selected one in redisplay_preserve_echo_area.
+       * nsterm.m (ns_flush): Remove no-op.
+       (ns_redisplay_interface): Adjust user.
+       * w32term.h (x_flush): Remove no-op.
+       (w32_redisplay_interface): Adjust user.
+       * xterm.c (x_flush): Simplify because we do not flush all
+       frames at once any more.  Adjust comment.
+       (x_redisplay_interface): Adjust user.
+
+2013-09-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port --without-x --enable-gcc-warnings to Fedora 19.
+       * gfilenotify.c (globals_of_gfilenotify):
+       Call g_type_init only if using an older glib version that needs it.
+
+2013-09-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * lisp.h (last_glyphless_glyph_frame, last_glyphless_glyph_face_id)
+       (last_glyphless_glyph_merged_face_id): Remove declarations.
+       * dispextern.h (merge_glyphless_glyph_face): Add prototype.
+       * xdisp.c (last_glyphless_glyph_frame, last_glyphless_glyph_face_id)
+       (last_glyphless_glyph_merged_face_id): Now static.
+       (merge_escape_glyph_face): New function, refactored from...
+       (get_next_display_element): ...here.
+       (merge_glyphless_glyph_face): New function, refactored from...
+       (produce_glyphless_glyph): ...here...
+       * term.c (produce_glyphless_glyph): ...and here.
+
+2013-09-06  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * eval.c (eval_sub): Only call Ffunction if necessary.
+
+2013-09-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Attempt to make redisplay more selective when changing cursor type.
+       * frame.h (struct frame): New bitfield cursor_type_changed.
+       * xdisp.c (cursor_type_changed): Remove.
+       (try_cursor_movement, redisplay_window, try_window_id)
+       (set_frame_cursor_types, try_window_reusing_current_matrix):
+       Adjust to use per-frame bitfield.
+       (redisplay_internal): Look for cursor type change on each visible
+       frame and consider all frames if cursor type has been changed on
+       the frame other than selected.  If cursor type has been changed on
+       selected frame only, do not use fast update.
+
+2013-09-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Attempt to make redisplay more selective when changing fonts.
+       * frame.h (struct frame): New bitfield fonts_changed.
+       * dispextern.h (fonts_changed_p, adjust_glyphs): Remove declaration.
+       (adjust_frame_glyphs): Add prototype.
+       * dispnew.c (fonts_changed_p): Remove.
+       (adjust_glyphs): Remove because we do not
+       adjust matrices on all frames at once any more.
+       (adjust_frame_glyphs): Block and unblock input here.
+       (adjust_glyph_matrix): Use fonts_changed.
+       (change_frame_size_1): Use adjust_frame_glyphs.
+       * font.c (font_open_entity): Use fonts_changed.
+       * frame.c (set_menu_bar_lines, Fmake_terminal_frame):
+       * w32fns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_show_tip):
+       * window.c (Fdelete_other_windows_internal, Fwindow_resize_apply)
+       (Fsplit_window_internal, Fdelete_window_internal, grow_mini_window)
+       (shrink_mini_window, Fresize_mini_window_internal)
+       (window_scroll_pixel_based, Fset_window_configuration)
+       (apply_window_adjustment, Fset_window_vscroll):
+       * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_show_tip):
+       Use adjust_frame_glyphs.
+       * xdisp.c (redisplay_tool_bar, redisplay_window, try_window)
+       (try_window_reusing_current_matrix, try_window_id, display_line)
+       (IT_EXPAND_MATRIX_WIDTH): Use fonts_changed.
+       (redisplay_internal): Consider fonts_changed and adjust frame
+       matrices for each frame only if the frame is visible.  If font
+       has been changed on some frame during full redisplay, retry
+       only visible frames where the font has been actually changed.
+
+2013-09-05  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Cache current header and mode line height for each window.
+       * window.h (struct window): New fields mode_line_height
+       and header_line_height.
+       * window.c (make_window): Initialize them.
+       * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
+       (CURRENT_HEADER_LINE_HEIGHT): Use them.  Adjust comment.
+       (current_mode_line_height, current_header_line_height):
+       Remove declaration.
+       * xdisp.c (current_mode_line_height, current_header_line_height):
+       Remove.
+       (pos_visible_p, init_xdisp): Adjust user.
+       (redisplay_window): Invalidate mode_line_height and
+       header_line_height if current and desired matrices do not agree.
+
+2013-09-05  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * fontset.c, window.c, xdisp.c (toplevel): Use TERM_HEADER.
+       * xfaces.c (toplevel) [HAVE_X_WINDOWS]: Do not include xterm.h twice.
+
+2013-09-05  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Make --without-x compatible with --enable-gcc-warnings.
+       * font.c (register_font_driver): Move check under HAVE_WINDOW_SYSTEM.
+       * font.h (struct font_driver): Move draw, get_bitmap and free_bitmap
+       members under HAVE_WINDOW_SYSTEM.
+       * keyboard.c (make_lispy_focus_out): Likewise.
+       (record_menu_key): Move under HAVE_MENUS.
+       * xdisp.c (toplevel): Move hourglass_shown_p, hourglass_atimer and
+       THIN_SPACE_WIDTH under HAVE_WINDOW_SYSTEM.
+       (syms_of_xdisp): Adjust user.
+       (window_box_edges): Define only if HAVE_WINDOW_SYSTEM.
+       (start_hourglass, cancel_hourglass):
+       * xfaces.c (toplevel): Likewise with PT_PER_INCH,
+       clear_font_table_count, CLEAR_FONT_TABLE_COUNT
+       and CLEAR_FONT_TABLE_NFONTS.
+       (set_font_frame_param, clear_face_gcs, realize_non_ascii_face):
+       Declare only if HAVE_WINDOW_SYSTEM.
+       (lface_same_font_attributes_p, clear_face_gcs): Define only
+       if HAVE_WINDOW_SYSTEM.
+
+2013-09-05  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * frame.c (check_minibuf_window): Update 'frame' with frame pointer.
+       * xterm.c (x_scroll_bar_handle_click) [!USE_TOOLKIT_SCROLL_BARS]:
+       Don't pass C integer to XINT (tiny fix for 2013-09-03 change).
+
+2013-09-05  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * cmds.c (Fself_insert_command): Don't pass a non-integer to XINT.
+
+2013-09-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * alloc.c (make_event_array): First arg is now ptrdiff_t, not int.
+       This fixes a type error on hosts where ptrdiff_t is wider than int.
+
+2013-09-04  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * keyboard.c (read_key_sequence_vs): New function.
+       (Fread_key_sequence_vector, Fread_key_sequence): Use it to factor out
+       common code.
+
+       * callint.c (Fcall_interactively): Always return a vector for 'K'.
+
+2013-09-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Makefile improvements.
+       * Makefile.in (config.status): Don't use double-colon rules, as
+       they are not portable according to POSIX.  Fix shell typo with `;
+       I guess this rule has never been tested?
+       (VCSWITNESS): New macro, to override any environment var.
+
+2013-09-04  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xterm.h (struct x_display_info): Do not track X connection
+       fd separately because it is always available from Display.
+       * xterm.c (x_term_init, x_delete_terminal, x_delete_display):
+       Adjust users.
+
+2013-09-03  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * buffer.c (drop_overlay):
+       * fileio.c (restore_point_unwind): Prefer unchain_marker to
+       Fset_marker (X, Qnil, ...) (which is the same but a bit slower).
+
+2013-09-03  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * buffer.c (Fmake_overlay, Fmove_overlay):
+       * intervals.c (set_point_from_marker):
+       * print.c (PRINTPREPARE): Prefer signal_error
+       to plain error and report unsuitable marker too.
+
+2013-09-03  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xterm.h (struct scroll_bar): Prefer int to Lisp_Object
+       for 'dragging' member.
+       (struct x_output): Remove set-but-unused leftovers
+       'left_before_move' and 'top_before_move'.
+       * gtkutil.c (xg_set_toolkit_scroll_bar_thumb):
+       * xterm.c (xt_action_hook, xm_scroll_callback, xg_scroll_callback)
+       (xg_end_scroll_callback, xaw_jump_callback, xaw_scroll_callback)
+       (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
+       (x_scroll_bar_set_handle, XTset_vertical_scroll_bar)
+       (x_scroll_bar_handle_click, x_scroll_bar_note_movement)
+       (x_scroll_bar_report_motion, x_set_offset): Related users changed.
+       * xfns.c, image.c (XLIB_ILLEGAL_ACCESS): No longer needed.
+
+2013-09-03  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsfont.m (INVALID_GLYPH): New define.
+       (nsfont_encode_char): Use INVALID_GLYPH.
+       (ns_uni_to_glyphs): Ditto, check for NSNullGlyph (Bug#15138).
+
+2013-09-02  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xterm.c (x_last_mouse_movement_time): Revert last change.
+       This code should use XDisplayMotionBufferSize to check display's
+       motion history first, and there are few other issues as well.
+       (x_scroll_bar_note_movement): Pass XMotionEvent rather than XEvent.
+       (handle_one_xevent): Adjust user.
+
+2013-09-02  Martin Rudalics  <rudalics@gmx.at>
+
+       * dispnew.c (Flast_nonminibuf_frame): Move from here ...
+       * frame.c (Flast_nonminibuf_frame): ... to here.
+       (check_minibuf_window): Don't abort if no window was found
+       (Bug#15247).
+
+2013-09-02  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Use XGetMotionEvents to ask the last mouse motion time from X server.
+       * xterm.c (X_MOTION_HISTORY): Default to 1.
+       (x_last_mouse_movement_time) [X_MOTION_HISTORY]: New function.
+       (x_last_mouse_movement_time) [!X_MOTION_HISTORY]: Legacy version.
+       (note_mouse_movement, x_scroll_bar_note_movement) [!X_MOTION_HISTORY]:
+       Ifdef away legacy code.
+       (XTmouse_position, x_scroll_bar_report_motion):
+       Use x_last_mouse_movement_time.
+       (handle_one_xevent): Use event.xunmap and not event.xmap when handling
+       UnmapNotify event.
+
+2013-09-02  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * msdos.c (last_mouse_window): Move to...
+       (dos_rawgetc): ...this function and adjust comment.
+       * nsterm.m (last_window): Rename to last_mouse_window, move to...
+       (mouseMoved): ...this function and adjust comment.
+       * w32term.c (last_window): Likewise with...
+       (w32_read_socket): ...this function.
+       * xterm.c (last_window): Likewise with...
+       (handle_one_xevent): ...this function.
+
+2013-09-02  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * window.h (Vmouse_window, Vmouse_event): Remove the leftovers.
+       * xterm.c (toplevel): Drop obsolete comment and move compose_status...
+       (handle_one_xevent): ...to here.
+       (STORE_KEYSYM_FOR_DEBUG): Move under ENABLE_CHECKING and make no-op
+       otherwise.
+
+2013-09-02  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * msdos.c (IT_set_terminal_window): Remove no-op.
+       (initialize_msdos_display): Adjust terminal setup.
+       * w32console.c (w32con_set_terminal_window): Remove no-op.
+       (initialize_w32_display): Adjust terminal setup.
+       * w32term.c (w32_set_terminal_window): Remove no-op.
+       (w32_create_terminal): Adjust terminal setup.
+       * xterm.c (XTset_terminal_window): Remove no-op.
+       (x_create_terminal): Adjust terminal setup.
+
+2013-09-01  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * nsterm.m (ns_set_terminal_modes, ns_reset_terminal_modes):
+       Remove no-ops.
+       (ns_create_terminal): Adjust terminal setup.
+       * w32term.c (w32_set_terminal_modes, w32_reset_terminal_modes):
+       Remove no-ops.
+       (w32_create_terminal): Adjust terminal setup.
+       * xterm.c (XTset_terminal_modes, XTreset_terminal_modes):
+       Remove no-ops.
+       (x_create_terminal): Adjust terminal setup.
+
+2013-09-01  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * dispextern.h (SET_TEXT_POS_FROM_MARKER): Indent.
+       (CLIP_TEXT_POS_FROM_MARKER): New macro.
+       * dispnew.c (buffer_posn_from_coords):
+       * window.c (Fwindow_end, displayed_window_lines):
+       * xdisp.c (redisplay_mode_lines): Use it.
+
+2013-09-01  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * fontset.c (face_for_char): Check char in the current face font first
+       if HAVE_NS (Bug#15138).
+
+2013-08-31  Martin Rudalics  <rudalics@gmx.at>
+
+       * window.c (temp_output_buffer_show): Make sure window returned
+       by display_buffer is live (Bug#15213).
+
+2013-08-30  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Minor cleanup to avoid forward declarations.
+       * coding.h (struct ccl_spec): Remove forward declaration.
+       * composite.h (toplevel): Include font.h.
+       (struct composition_it, struct face, struct font_metrics):
+       Remove forward declaration.
+       * dispextern.h (struct image, struct atimer): Likewise.
+       * emacsgtkfixed.h (struct frame): Likewise.
+       * emacsgtkfixed.c (toplevel): Reorder headers and drop stdio.h.
+       * font.h (struct font_driver, struct font, struct glyph_string)
+       (struct face): Remove forward declaration.
+       * fontset.h (struct face, struct font): Likewise.
+       * frame.h (toplevel): Style cleanup.
+       (enum output_method): Move to...
+       * termhooks.h (enum output_method): ...here.
+       (struct glyph, struct frame, struct ns_display_info)
+       (struct x_display_info, struct w32_display_info):
+       Remove forward declaration.
+       * xterm.h (toplevel): Include termhooks.h.
+       (struct font, struct window, struct glyph_matrix, struct frame)
+       (struct input_event, struct face, struct image): Remove forward
+       declaration.
+       * gtkutil.h (struct _widget_value): Likewise.
+       * keyboard.h (toplevel): Include termhooks.h.
+       (struct input_event): Remove forward declaration.
+
+2013-08-29  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * intervals.c (set_point_from_marker): New function.
+       * editfns.c (Fgoto_char):
+       * process.c (Finternal_default_process_filter):
+       * window.c (select_window_1): Use it.
+       * buffer.h (set_point_from_marker): Add prototype.
+
+2013-08-29  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32.c (term_winsock): Call release_listen_threads before calling
+       WSACleanup.
+       (_sys_wait_accept): Wait for accept event in a loop with a finite
+       timeout, instead of waiting indefinitely.  Will hopefully avoid
+       hanging during exit because WSACleanup deadlocks waiting for the
+       event object to be released.  (Bug#14333)
+
+       * w32proc.c (release_listen_threads): New function, signals all
+       the reader threads that listen for connections to stop waiting.
+
+       * w32.h (release_listen_threads): Add prototype.
+
+2013-08-29  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * alloc.c (Fmake_marker, build_marker): Zero need_adjustment
+       field of new marker (for sanity and safety).
+       * lisp.h (XSETMARKER): Remove unused macro (it doesn't work
+       anyway because XMISCTYPE is a function and can't be an lvalue).
+
+2013-08-29  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xterm.c (x_clear_area): Lost 7th arg because it is always False.
+       (x_after_update_window_line, x_scroll_bar_create):
+       (x_scroll_bar_set_handle, XTset_vertical_scroll_bar):
+       (handle_one_xevent, x_clear_frame_area):
+       * gtkutil.c (xg_clear_under_internal_border, xg_update_scrollbar_pos):
+       * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines): Adjust users.
+       * xterm.h (x_clear_area): Adjust prototype.
+
+2013-08-29  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Hook scanning and indentation functions to find_newline.  This helps
+       to avoid duplicated code and renders more respect to newline cache.
+       * lisp.h (scan_newline): Prefer ptrdiff_t to EMACS_INT.
+       * cmds.c (Fforward_line):
+       * indent.c (scan_for_column, Fcurrent_indentation, indented_beyond_p):
+       Use find_newline and avoid unnecessary point movements.
+       * search.c (scan_newline): Implement on top of find_newline.
+
+2013-08-28  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * eval.c (Ffuncall): Fix handling of ((lambda ..) ..) in lexically
+       scoped code (bug#11258).
+
+2013-08-28  Davor Cubranic  <cubranic@stat.ubc.ca> (tiny change)
+
+       * nsterm.m (last_window): New variable.
+       (EV_TRAILER2): New macro.
+       (EV_TRAILER): Call EV_TRAILER2.
+       (mouseMoved:):  Add support for mouse-autoselect-window
+       on nextstep (Bug#6888).
+
+2013-08-28  Andreas Schwab  <schwab@suse.de>
+
+       * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE, CHAR_HEAD_P)
+       (SINGLE_BYTE_CHAR_P, SAME_CHARSET_P, MAKE_CHAR, BYTE8_TO_CHAR):
+       Remove unused macro definitions.
+       (CHARSET_RANGE_TABLE_BITS, EXTEND_RANGE_TABLE)
+       (SET_RANGE_TABLE_WORK_AREA_BIT, SET_RANGE_TABLE_WORK_AREA):
+       Only define if emacs.
+
+2013-08-28  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Prefer enum glyph_row_area to int where appropriate.
+       * dispextern.h (enum glyph_row_area): Add ANY_AREA member.
+       Fix comment.
+       (window_box, window_box_width, window_box_left, window_box_left_offset)
+       (window_box_right, window_box_right_offset): Adjust prototypes.
+       * xdisp.c (window_box, window_box_width, window_box_left)
+       (window_box_left_offset, window_box_right, window_box_right_offset):
+       Use enum glyph_row_area.  Adjust users and tweak comment where needed.
+       (window_box_edges): Likewise.  Lost 2nd arg since it is always ANY_AREA.
+       * nsterm.m (ns_clip_to_row):
+       * w32term.c (w32_clip_to_row):
+       * xterm.c (x_clip_to_row): Likewise.
+
+2013-08-28  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * buffer.c (Foverlays_at, Foverlays_in, Fnext_overlay_change)
+       (Fprevious_overlay_change): Fast path for buffer with no overlays.
+
+2013-08-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * Makefile.in (SHELL): Now @SHELL@, not /bin/sh,
+       for portability to hosts where /bin/sh has problems.
+
+2013-08-28  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Redesign redisplay interface to drop global output_cursor.
+       * dispextern.h (struct redisplay_interface): Remove cursor_to member.
+       (toplevel): Remove declaration of output_cursor.
+       (set_output_cursor, x_cursor_to): Remove prototype.
+       * window.h (struct window): New member output_cursor.
+       (output_cursor_to): New function to replace RIF member.
+       * dispnew.c (redraw_overlapped_rows, update_marginal_area)
+       (update_text_area, set_window_cursor_after_update): Use it.
+       * xdisp.c (output_cursor, set_output_cursor, x_cursor_to): Remove.
+       (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
+       * nsterm.m (ns_update_window_begin, ns_update_window_end):
+       * w32term.c (x_update_window_begin, x_update_window_end):
+       * xterm.c (x_update_window_begin, x_update_window_end):
+       Adjust to use per-window output cursor.
+
+2013-08-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Simplify SELECT_TYPE-related code.
+       Like EMACS_TIME, this portability layer is no longer needed, since
+       Emacs has been using fd_set as a portability layer for some time.
+       * sysselect.h (FD_SETSIZE): Rename from MAXDESC.  All uses changed.
+       (SELECT_TYPE): Remove.  All uses changed to fd_set.
+       (fd_set) [!FD_SET]: New typedef.
+
+       Simplify EMACS_TIME-related code.
+       This portability layer is no longer needed, since Emacs has been
+       using struct timespec as a portability layer for some time.
+       * atimer.h, buffer.h, dispextern.h, xgselect.h:
+       Include <time.h> rather than "systime.h"; that's all that's needed now.
+       * dispnew.c: Include <timespec.h> rather than "systime.h";
+       that's all that's needed now.
+       * systime.h (EMACS_TIME): Remove.  All uses changed to struct timespec.
+       (EMACS_TIME_RESOLUTION): Remove.  All uses changed to
+       TIMESPEC_RESOLUTION.
+       (LOG10_EMACS_TIME_RESOLUTION): Remove.  All uses changed to
+       LOG10_TIMESPEC_RESOLUTION.
+       (EMACS_SECS, emacs_secs_addr): Remove.  All uses changed to tv_sec.
+       (EMACS_NSECS): Remove.  All uses changed to tv_nsec.
+       (make_emacs_time): Remove.  All used changed to make_timespec.
+       (invalid_timespec): Rename from invalid_emacs_time.  All uses changed.
+       (current_timespec): Rename from current_emacs_time.  All uses changed.
+       (add_emacs_time): Remove.  All uses changed to timespec_add.
+       (sub_emacs_time): Remove.  All uses change dot timespec_sub.
+       (EMACS_TIME_SIGN): Remove.  All uses changed to timespec_sign.
+       (timespec_valid_p): Rename from EMACS_TIME_VALID_P.  All uses changed.
+       (EMACS_TIME_FROM_DOUBLE): Remove.  All uses changed to dtotimespec.
+       (EMACS_TIME_TO_DOUBLE): Remove.  All uses changed to timespectod.
+       (current_timespec): Rename from current_emacs_time.  All uses changed.
+       (EMACS_TIME_EQ, EMACS_TIME_LT, EMACS_TIME_LE): Remove.  All uses
+       changed to timespec_cmp.
+       * xgselect.c: Include <timespec.h>, since our .h files don't.
+
+2013-08-27  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xterm.h (FONT_TYPE_FOR_UNIBYTE, FONT_TYPE_FOR_MULTIBYTE:)
+       * nsterm.h (FONT_TYPE_FOR_UNIBYTE, FONT_TYPE_FOR_MULTIBYTE):
+       Remove the leftovers.
+       * gtkutil.c (toplevel): Do not declare Qxft but include
+       font.h to do so.
+       * image.c (toplevel): Do not declare Vlibrary_cache because
+       it's already done in lisp.h.
+
+2013-08-27  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * lisp.h (Mouse_HLInfo): Move from here...
+       * dispextern.h (Mouse_HLInfo): ...to here and offload lisp.h.
+       (reset_mouse_highlight): New function.
+       * msdos.c (dos_set_window_size, IT_update_begin)
+       (internal_terminal_init):
+       * nsterm.m (ns_update_window_end, x_free_frame_resources)
+       (ns_initialize_display_info):
+       * w32console.c (initialize_w32_display):
+       * w32term.c (x_update_window_end, x_free_frame_resources)
+       (w32_initialize_display_info):
+       * xterm.c (x_update_window_end, x_free_frame_resources, x_term_init):
+       * window.c (Fdelete_other_windows_internal):
+       * xdisp.c (clear_mouse_face, cancel_mouse_face): Use it.
+       * termchar.h (toplevel):
+       * xterm.h (toplevel): Include dispextern.h.
+
+2013-08-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix minor problems found by static checking.
+       * image.c (XGetPixel, XPutPixel) [HAVE_NS]: Now static.
+       (expect): Avoid nested-if warning.
+       (x_build_heuristic_mask) [HAVE_NS]: Avoid unused-var warning.
+       * nsmenu.m (fillWithWidgetValue:): Avoid type warning.
+       * nsterm.h, nsterm.m (ns_select):
+       * xgselect.c, xgselect.h (xg_select):
+       Adjust signature to better match pselect's.
+       * nsterm.m (ns_select):
+       Don't set *TIMEOUT, since pselect doesn't.
+       * regex.c (whitespace_regexp): Now const_re_char *, to avoid
+       diagnostic about assigning const char * to it.
+       * xfaces.c (x_display_info) [HAVE_NS]: Remove; unused.
+
+2013-08-26  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lread.c (substitute_object_recurse): Handle hash-tables as well
+       (bug#15190).
+
 2013-08-26  Paul Eggert  <eggert@cs.ucla.edu>
 
+       Fix unlikely core dump in init_tty, and simplify terminfo case.
+       * term.c (init_tty) [TERMINFO]: Fix check for buffer overrun.
+       The old version incorrectly dumped core if malloc returned a
+       buffer containing only non-NUL bytes.
+       (init_tty): Do not allocate or free termcap buffers; the
+       struct does that for us now.
+       * termchar.h (TERMCAP_BUFFER_SIZE) [!TERMINFO]: New constant.
+       (struct tty_display_info): Define members termcap_term_buffer and
+       termcap_strings_buffer only if !TERMINFO, since terminfo doesn't
+       use them.  Allocate them directly in struct rather than indirectly
+       via a pointer, to simplify init_tty.
+
        * frame.c (check_minibuf_window): Initialize 'window' properly,
        so that Emacs reliably aborts later if 'window' is not initialized.
 
 2013-08-26  Martin Rudalics  <rudalics@gmx.at>
 
        * frame.c (check_minibuf_window): New function.
-       (delete_frame, Fmake_frame_invisible, Ficonify_frame): Call
-       check_minibuf_window (Bug#15183).
+       (delete_frame, Fmake_frame_invisible, Ficonify_frame):
+       Call check_minibuf_window (Bug#15183).
 
 2013-08-26  Dmitry Antipov  <dmantipov@yandex.ru>
 
 
 2013-08-26  Dmitry Antipov  <dmantipov@yandex.ru>
 
-       Fix recovering from possible decompression error.  Since
-       insert_from_gap doesn't always move point, we can't use PT as
+       Fix recovering from possible decompression error.
+       Since insert_from_gap doesn't always move point, we can't use PT as
        the position where the partially decompressed data ends, and
        should count how many bytes was produced so far.
        * decompress.c (struct decompress_unwind_data): Add nbytes member.
 
 2013-08-15  Eli Zaretskii  <eliz@gnu.org>
 
-       * xdisp.c (compute_window_start_on_continuation_line): When
-       WORD_WRAP is in effect, use move_it_to instead of move_it_by_lines
+       * xdisp.c (compute_window_start_on_continuation_line):
+       When WORD_WRAP is in effect, use move_it_to instead of move_it_by_lines
        to make sure we end up setting the window start at the leftmost
        visible character of the display line.  This avoids funky
        horizontal shifting because the window start is not kept on the
        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_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.
 
        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.
+       (syms_of_decompress): DEFSYM Qzlib_dll.
+       Staticpro Szlib_available_p.
 
 2013-08-12  Dmitry Antipov  <dmantipov@yandex.ru>
 
        * nsmenu.m (ns_update_menubar): Call fillWithWidgetValue:frame:
        (initWithTitle:): Initialize frame to 0.
        (fillWithWidgetValue:): Call fillWithWidgetValue:frame.
-       (fillWithWidgetValue:frame:): Renamed from
+       (fillWithWidgetValue:frame:): Rename from
        fillWithWidgetValue:setDelegate, call initWithTile:frame: if f.
 
        * nsterm.h (EmacsMenu): fillWithWidgetValue:setDelegate renamed to
        * 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.
+       * insdel.c (prepare_to_modify_buffer):
+       Invalidate bidi_paragraph_cache if enabled.
 
 2013-08-06  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.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.
        or fscanf fails.
        (system_process_attributes): Prefer plain char to unsigned char
        when either will do.  Clean up properly if interrupted or if
-       memory allocations fail.  Don't assume sscanf succeeds.  Remove
-       no-longer-needed workaround to stop GCC from whining.  Read
-       command-line once, instead of multiple times.  Check read status a
+       memory allocations fail.  Don't assume sscanf succeeds.
+       Remove no-longer-needed workaround to stop GCC from whining.
+       Read command-line once, instead of multiple times.  Check read status a
        bit more carefully.
 
        Fix obscure porting bug with varargs functions.
        of the old Fcall_process_region.  Use Fcopy_sequence to create the
        temp file name, rather than alloca + build_string, for simplicity.
        Don't bother to block input around the temp file creation;
-       shouldn't be needed.  Simplify use of mktemp.  Use
-       record_unwind_protect immediately after creating the temp file;
+       shouldn't be needed.  Simplify use of mktemp.
+       Use record_unwind_protect immediately after creating the temp file;
        this closes an unlikely race where the temp file was not removed.
        Use memcpy rather than an open-coded loop.
        (Fcall_process_region): Use the new function.  If the input is
        (try_cursor_movement, redisplay_window, try_window)
        (try_window_id): Use it instead of FRAME_LINE_HEIGHT.  (Bug#14771)
 
-       * window.c (window_scroll_pixel_based): use
-       default_line_pixel_height.
+       * window.c (window_scroll_pixel_based):
+       use default_line_pixel_height.
 
        * dispextern.h (default_line_pixel_height): Add prototype.